如何使用正则表达式或 Python 3 中的任何其他库获取两点之间的字符串?
例如: Blah blah ABC 要检索的字符串 XYZ Blah Blah
ABC 和 XYZ 是表示我必须检索的字符串的开头和结尾的变量。
如何使用正则表达式或 Python 3 中的任何其他库获取两点之间的字符串?
例如: Blah blah ABC 要检索的字符串 XYZ Blah Blah
ABC 和 XYZ 是表示我必须检索的字符串的开头和结尾的变量。
使用ABCandXYZ作为带有后视和前瞻断言的锚:
(?<=ABC).*?(?=XYZ)
后视断言仅在文本中以.(?<=...)开头的位置匹配ABC。同样,(?=XYZ)在 后面的位置匹配XYZ。它们一起形成了两个锚点,限制了.*匹配任何东西的表达式。
您可以通过以下方式找到所有此类锚定文本re.findall():
for matchedtext in re.findall(r'(?<=ABC).*?(?=XYZ)', inputtext):
如果ABC和XYZ是可变的,您希望在它们上使用re.escape()(以防止它们的任何内容被解释为正则表达式语法)并插值:
re.match(r'(?<={}).*?(?={})'.format(abc, xyz), inputtext)
我认为这就是你想要的:
import re
match = re.search('ABC(.*)XYZ','Blah blah ABC the string to be retrieved XYZ Blah Blah')
print match.group(1)