繁体   English   中英

Python正则表达式-有界词

[英]Python regex - bounded word

我一直在尝试使用正则表达式来识别两个字符之间的单词,但我只是无法成功。 这是我的代码:

re.match(r"\s*\#?\w*(\<)+\s*(?P<method>\w+)\s*(\>)+\w*", "# This <foo> truc")

该句子具有(或没有)python注释(#),并且必须显示group方法。

谢谢您的时间和帮助

您需要将正则表达式更改为在This<之前包含可选空格,然后才能使用groups属性:

some_match = re.match(r"\s*\#?\s*\w*\s*(\<)+\s*(?P<method>\w+)\s*(\>)+\w*", "# This <foo> truc")

some_match.groups()
('<', 'foo', '>')

some_match.groups(1)
'foo'

您缺少一些空格匹配。 #字符之后, <之前和>

因此,一种选择是添加缺少的空格匹配:

>>> m = re.match(r"\s*\#?\s*\w*\s*(\<)+\s*(?P<method>\w+)\s*(\>)+\s*\w*", "# This <foo> truc")
>>> m.group('method')
'foo'

但是,如果只需要<>之间的值,则使用re.search代替,您可以简单地使用正则表达式:

>>> r = re.search(r"\<(?P<method>[^\>]*)\>", "# This <foo> truc")
>>> r.group('method')
'foo'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM