在Python中将字符串替换为匹配模式
我有这样一个字符串在Python中将字符串替换为匹配模式,python,regex,Python,Regex,我有这样一个字符串QH AAPL | 5M | 20190101093000 | 20190208170000 12447:M01/02/2019 | F04:00:00 | H154.4 | L153.01 | O154.4 | T154 | V3257,我想用M替换字符串开头的所有字符 因此,剩余字符串应为M01/02/2019 | F04:00:00 | H154.4 | L153.01 | O154.4 | T154 | V3257 我不知道如何在Python正则表达式中实现这一点。请帮
QH AAPL | 5M | 20190101093000 | 20190208170000 12447:M01/02/2019 | F04:00:00 | H154.4 | L153.01 | O154.4 | T154 | V3257
,我想用M
替换字符串开头的所有字符
因此,剩余字符串应为M01/02/2019 | F04:00:00 | H154.4 | L153.01 | O154.4 | T154 | V3257
我不知道如何在Python正则表达式中实现这一点。请帮忙 pythonstr.find()
方法完成了这个任务。这里有一个例子:
a = "QH AAPL|5M|20190101093000|20190208170000|12347:M01/02/2019|F04:00:00|H154.4|L153.01|O154.4|T154|V3257"
print(a[a.find(":M") + 1:]) # -> M01/02/2019|F04:00:00|H154.4|L153.01|O154.4|T154|V3257
编辑
如果您真的想使用regex执行此操作,请查看以下示例:
import re
a = "QH AAPL|5M|20190101093000|20190208170000|12347:M01/02/2019|F04:00:00|H154.4|L153.01|O154.4|T154|V3257"
print(a[re.search(":M", a).start() + 1:]) # -> M01/02/2019|F04:00:00|H154.4|L153.01|O154.4|T154|V3257
如果必须使用正则表达式:
import re
text = 'QH AAPL|5M|20190101093000|20190208170000|12347:M01/02/2019|F04:00:00|H154.4|L153.01|O154.4|T154|V3257'
regex = re.compile(r'.+:(M.+$)')
match = regex.search(text)
if match:
print(match.group(1))
Will:M是所有字符串中第一个遇到冒号(:)的位置吗?所以你不想替换任何东西,你只想提取一个子字符串:你的代码在哪里?你尝试过做什么吗?你不需要正则表达式来做。只需找到
:M的索引,然后将列表切片到该索引即可获得剩余的字符串。