python正则表达式不识别模式

时间:2017-02-09 16:12:42

标签: python regex

首先说我已经阅读了关于regex表达式的python文档,我无法重写我的正则表达式以便与python re 模块一起使用。 所以,这是一个基本的正则表达式:

\_*([A-Z][A-Z]+\_*[A-Z|0-9|\_]*)+\_*

我知道这对我的目的是好的,因为egrep它完全匹配我想要的东西,但python继续为每个分析的字符串返回None。

修改 预期输出是一切都以_开头或者不是_,它都是大写的,从字母开始,之后可能是字母或数字,也是_:XXX,XX_X,_XXX,_XX_XXXX_ XX_ 其中input是一个包含小写字母和空格的字符串。

1 个答案:

答案 0 :(得分:1)

首先,你的正则表达式可以改进,我可以建议你更像_?[A-Z][A-Z0-9_]+

正如rugie所说,你不需要逃避_,而[A-Z|0-9|\_]将无法正常工作(请参阅dawg的评论)。

辅助,你使用了re模块的哪个功能?如果它是re.match,那么从字符串开头re.match搜索后它可能无效。 您想知道您的模式是否在字符串中,或​​者捕获此字符串中的所有模式?您可以使用re.search作为第一个,re.findall作为第二个。

告诉我们您尝试了什么,我们将能够为您提供更多帮助。