这可能是我遗漏的那些简单的事情之一,但是我一直找不到能够解决我的问题的解决方案。

我有两个以下格式的字符串:



遵循这个答案Replace all text between 2 strings python,当给定起始词和结束词时,我可以替换一个短语,如下所示。

import re
s1 = '87, 72 Start I am a sentence finish'
s2 = '93, 83 Start I am a sentence end'

print(re.sub("Start.*?finish", '', s1, re.DOTALL).strip())
print(re.sub("Start.*?end", '', s2, re.DOTALL).strip())

>>> 87, 72
>>> 93, 83

在我的情况下,我将具有以下条件:起始词是相同的,但结束词可能是不同的。

是否可以仅提供起始词来替换所需的短语?

我已经尝试过了,但是它仅替换了起始词。
s1 = '87, 72 Start I am a sentence finish'
print(re.sub("Start.*?", '', v1, re.DOTALL).strip())

>>> 87, 72 I am a sentence finish

最佳答案

使用行尾 anchor $和贪婪匹配的.*:

print(re.sub("Start.*$", '', v1, re.DOTALL).strip())

参见demo

Sample code:
import re
p = re.compile(ur'Start.*$')
test_str = u"87, 72 Start I am a sentence finish"
result = re.sub(p, "", test_str).strip()
print result

输出:
87, 72

关于regex - Python正则表达式用起始词替换句子,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30129936/

10-13 07:55