python中的正则表达式,重复片段查找
我尝试使用regex在文本中查找如下元素:abs=abs,1=1等等。 我是这样写的:python中的正则表达式,重复片段查找,python,regex,Python,Regex,我尝试使用regex在文本中查找如下元素:abs=abs,1=1等等。 我是这样写的: opis="Some text abs=abs sfsdvc" wyn=re.search('([\w]*)=\1',opis) print(wyn.group(0)) 当我在www.regexr.com这样的网站上尝试这段代码时,它没有发现任何问题。 我在python re中做错了什么吗?必须将正则表达式指定为原始字符串r'..' >>> opis="Some text abs=abs
opis="Some text abs=abs sfsdvc"
wyn=re.search('([\w]*)=\1',opis)
print(wyn.group(0))
当我在www.regexr.com这样的网站上尝试这段代码时,它没有发现任何问题。
我在python re中做错了什么吗?必须将正则表达式指定为原始字符串
r'..'
>>> opis="Some text abs=abs sfsdvc"
>>> wyn=re.search(r'([\w]*)=\1',opis)
>>> print wyn.group(0)
abs=abs
原始字符串表示法(r“text”)使正则表达式保持正常。如果没有它,正则表达式中的每个反斜杠(“\”)都必须以另一个反斜杠作为前缀才能转义。例如,以下两行代码在功能上相同:
也就是说,如果您不打算使用原始字符串,那么字符串中的所有\
都必须作为
>>> opis="Some text abs=abs sfsdvc"
>>> wyn=re.search('([\\w]*)=\\1',opis)
>>> print wyn.group(0)
abs=abs
将正则表达式更改为:
re.search(r'(\w+)=\1', opis).group()
↑
请注意,这里并不真正需要字符类,
[
和]
是多余的,而且如果不想匹配字符串“=”(孤独的等号),\w+
最好使用\w+
?@BurhanKhalid,因为它也匹配这个=那个
。OP希望两边相等。啊,我明白了,=.@BurhanKhalid的每一边都有两个相似的字符串确切地说,(
和)
之间的文本将被正则表达式引擎捕获并记住,然后\1
将匹配捕获的字符串。