这可能是我错过的简单事情之一,但我一直无法找到一个解决方案来解决我的问题。
我有两个字符串,格式如下:
s1 = '87,72 Start I am a sentence finish'
s2 = '93,83 Start I am a sentence end'
根据这个答案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
型
4条答案
按热度按时间nom7f22z1#
在这里使用贪婪点匹配模式,
.*
,然后strip
所有冗余空格:字符串
请参阅demo
Sample code:
型
输出量:
型
ecfsfe2w2#
您可以使用“$”来匹配“行结束”,所以“Start.*$”应该可以。
bfhwhh0e3#
另外..你可以在正则表达式中删除
?
(非贪婪)..它将默认匹配到末尾..(贪婪,这里不需要使用$
)字符串
请参阅DEMO
输入:
型
输出:
型
z9ju0rcb4#
如果你只需要字符串开头的数字,你可以用途:
字符串
输出:
型
正则表达式解释:
型
Regex Demo:
https://regex101.com/r/gV9kJ6/1
Python Demo:
http://ideone.com/XU02Gf的