Python 多重正向lookback正则表达式
所以我在练习正则表达式时遇到了这个问题Python 多重正向lookback正则表达式,python,regex,Python,Regex,所以我在练习正则表达式时遇到了这个问题 STATE : TEXAS 我要做一个积极的回顾 这是我的正则表达式: state = re.search(r"(?<=STATE)\s+(?<=:)\s+\w+",str(Text),re.I|re.M) 删除第二个正向查找将为您提供:TEXAS 然而,我想提取的是没有冒号的TEXAS,为什么后面的第二个查找无法捕获TEXAS?如何修复它呢?不要使用前向/后向;改为使用组。(我真希望在我第一次学习regex时有人告诉我这一点!): 想
STATE : TEXAS
我要做一个积极的回顾
这是我的正则表达式:
state = re.search(r"(?<=STATE)\s+(?<=:)\s+\w+",str(Text),re.I|re.M)
删除第二个正向查找将为您提供:TEXAS
然而,我想提取的是没有冒号的
TEXAS
,为什么后面的第二个查找无法捕获TEXAS
?如何修复它呢?不要使用前向/后向;改为使用组。(我真希望在我第一次学习regex时有人告诉我这一点!):
想想你的模式的这一部分:
(?<=STATE)\s+(?<=:)
“向后看”不会消耗文本。它只检查并保持主匹配的状态不变。@nhahdh那么使用文本是什么意思?喜欢吗?
re.search('STATE\s+:\s+(\w+)', "STATE : TEXAS").group(1)
Out[145]: 'TEXAS'
(?<=STATE)\s+(?<=:)
>>> data = "STATE : TEXAS"
>>> re.search("STATE\s+:\s+(\w+)", data).group(1)
'TEXAS'