0

例如,我想要冒号之间的内容,但我需要从最后匹配,因为前面的内容可能有冒号,会搞砸。

使用冒号的东西:

其他使用冒号的东西:

:IWantWhatIsInHere:

某物

某物

4

2 回答 2

5

假设您有一个名为的字符串,以下应该可以工作text

import re
data = re.search(r'.*:([^:]*):', text, re.DOTALL).group(1)

.*正则表达式开头的贪婪确保您的匹配将在最后一个:可能开始,以满足您的“从文件末尾”的要求。该re.DOTALL标志在那里,因此也.*可以匹配换行符。

正则表达式的:([^:]*):部分是您实际匹配“IWantWhatIsInHere”的地方,[^:]*意思是“匹配任意数量的非字符:”,括号会将匹配保存到捕获组。

找到匹配后,我们调用group(1)它来获取第一个捕获组的内容,这将是您想要的数据。

于 2013-05-30T00:02:31.523 回答
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'

适用于行尾锚。

于 2013-05-30T00:34:07.543 回答