Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 多重正向lookback正则表达式_Python_Regex - Fatal编程技术网

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'