首先说我已经阅读了关于regex表达式的python文档,我无法重写我的正则表达式以便与python re 模块一起使用。 所以,这是一个基本的正则表达式:
\_*([A-Z][A-Z]+\_*[A-Z|0-9|\_]*)+\_*
我知道这对我的目的是好的,因为egrep它完全匹配我想要的东西,但python继续为每个分析的字符串返回None。
修改 预期输出是一切都以_开头或者不是_,它都是大写的,从字母开始,之后可能是字母或数字,也是_:XXX,XX_X,_XXX,_XX_XXXX_ XX_ 其中input是一个包含小写字母和空格的字符串。
答案 0 :(得分:1)
首先,你的正则表达式可以改进,我可以建议你更像_?[A-Z][A-Z0-9_]+
正如rugie所说,你不需要逃避_
,而[A-Z|0-9|\_]
将无法正常工作(请参阅dawg的评论)。
辅助,你使用了re模块的哪个功能?如果它是re.match
,那么从字符串开头re.match
搜索后它可能无效。
您想知道您的模式是否在字符串中,或者捕获此字符串中的所有模式?您可以使用re.search
作为第一个,re.findall
作为第二个。
告诉我们您尝试了什么,我们将能够为您提供更多帮助。