这可能是我遗漏的那些简单的事情之一,但是我一直找不到能够解决我的问题的解决方案。
我有两个以下格式的字符串:
遵循这个答案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/