例如,我想要冒号之间的内容,但我需要从最后匹配,因为之前的内容可能有冒号和混乱。
使用冒号的东西:
使用冒号的其他内容:
:IWantWhatIsInHere:
东西
东西
答案 0 :(得分:5)
假设您有一个名为text
的字符串:
import re
data = re.search(r'.*:([^:]*):', text, re.DOTALL).group(1)
正则表达式开头的贪婪.*
可确保您的匹配将从最后:
开始,以满足您“从文件末尾”的要求。 re.DOTALL
标志位于此处,以便.*
也可以匹配换行符。
正则表达式的:([^:]*):
部分是您实际匹配“IWantWhatIsInHere”的地方,[^:]*
表示“匹配任意数量的非:
字符”,括号将保存与捕获组的匹配。
在我们找到匹配后,我们在其上调用group(1)
以获取第一个捕获组的内容,这将是您想要的数据。
答案 1 :(得分:0)
这有效:
>>> tgt='''\
... something that uses a colon:
...
... something else that uses a colon:
...
... :IWantWhatIsInHere:
...
... something
...
... something'''
>>> re.search(r':([^:]*):[^:]*$',tgt,re.DOTALL).group(1)
'IWantWhatIsInHere'
works与行锚定结束。