在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正则表达式中实现这一点。请帮忙

python
str.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的索引,然后将列表切片到该索引即可获得剩余的字符串。