python正则表达式don';无法识别模式
首先,我已经阅读了关于正则表达式的python文档,我无法重写我的正则表达式以便与python re模块一起使用。 因此,它是一个基本正则表达式:python正则表达式don';无法识别模式,python,regex,Python,Regex,首先,我已经阅读了关于正则表达式的python文档,我无法重写我的正则表达式以便与python re模块一起使用。 因此,它是一个基本正则表达式: \_*([A-Z][A-Z]+\_*[A-Z|0-9|\_]*)+\_* 我知道这对于我的目的来说是可以的,因为对于egrep,它完全匹配我想要的内容,但是python继续为每个分析的字符串返回None 编辑 预期输出是以或不以u开头的所有内容,都是大写,以字母开头,之后可能是字母或数字,也可能是uxxx,XX_X,XXX,XX_XXXX_XX_
\_*([A-Z][A-Z]+\_*[A-Z|0-9|\_]*)+\_*
我知道这对于我的目的来说是可以的,因为对于egrep,它完全匹配我想要的内容,但是python继续为每个分析的字符串返回None
编辑
预期输出是以或不以u开头的所有内容,都是大写,以字母开头,之后可能是字母或数字,也可能是uxxx,XX_X,XXX,XX_XXXX_XX_
其中输入是带有小写字母和空格的字符串 首先,您的正则表达式可以改进,我可以向您推荐一些更像
?[A-Z][A-Z0-9+
正如rugie所说,你不需要逃避
,而[A-Z | 0-9 | \\\\\u]
将不会真正按照你想要的方式工作(见dawg的评论)
第二,您使用了re模块的哪个功能?如果它是re.match
,它可能不起作用,因为re.match
从字符串开始搜索。
您想知道您的模式是否在字符串中,还是捕获该字符串中的所有模式?您可以使用re.search
搜索第一个,使用re.findall
搜索第二个
告诉我们您尝试了什么,我们将能够为您提供更多帮助。添加您认为应该匹配和不应该匹配的字符串。匹配正则表达式的输入字符串是什么?预期的输出是什么?可疑的
[A-Z | 0-9 | \
:更改在字符类中不起作用。它只与[]
中的一个字符相匹配。您不需要转义\uu
我已经设法使用findall并重写了一个更好的(pythonic)正则表达式,现在我能够找到我要找的!谢谢你,利亚德!很高兴知道:)