2017-02-09 91 views
-2

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

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

我知道这是确定我的目的,因为与它的egrep完全匹配我想要的,但蟒蛇继续为每个分析字符串返回None。

编辑 预期输出是一切开始有或无_,它是所有大写,从信后可能是可能是字母或数字,也_:XXX,XX_X,_xxx,_XX_XXXX_ XX_ 其中输入一个带小写字母和空格的字符串。

+0

添加你认为应该和不应该匹配的字符串 – dawg

+0

什么是匹配正则表达式的输入字符串?预期产出是多少? –

+1

'[A-Z | 0-9 | \ _]'是可疑的:修改在字符类中不起作用。它只匹配'[]'中的单个字符 – dawg

回答

1

首先,你的正则表达式可以提高,我可以建议你更多的东西一样_?[A-Z][A-Z0-9_]+

正如rugie说,你不需要逃避_,和[A-Z|0-9|\_]将没有真正的工作,只要你想(请参阅dawg的评论)。

次要的,你使用了re模块的哪些功能?如果它是re.match,它可能不起作用,因为re.match从字符串的开头搜索。 你想知道你的模式是否在字符串中,或​​者捕获这个字符串中的所有模式?第一个可以使用re.search,第二个可以使用re.findall

告诉我们您试过的东西,我们将能够为您提供更多帮助。

+0

我设法使用findall并重写更好的(pythonic)正则表达式,现在我能够找到我寻找!谢谢你,嗨! –

+0

很高兴知道:) – Liad