模式在字符串中的任意位置匹配至少两个连续字母的字符串

时间:2011-11-14 12:45:32

标签: python regex

在我的python代码中,我想在字符串中的任意位置为至少两个连续的字母表模式匹配一​​个字符串。

我用过re.match(r'([a-zA-Z][a-zA-Z])+',str)

匹配字符串,例如'abc',但不匹配'1abc'。我的正则表达式中的错误是什么?

请帮助 谢谢

3 个答案:

答案 0 :(得分:2)

方法match仅从字符串的开头看。您应该使用search代替。

此外,您的正则表达式可以匹配偶数个字符。

re.search(r'([a-zA-Z][a-zA-Z]+)',str)

答案 1 :(得分:2)

我不太明白你想要什么,但是从提供的例子可以看出你误解了re.match的作用。请参阅python的re模块上的文档中的search() vs. match()

答案 2 :(得分:2)

回答更新的问题:

re.search(r'[a-zA-Z]{2,}', str)

如果您想要所有字母数字字符(包括下划线),或者只是这样:

re.search(r'\w{2,}', str)

真正只匹配字母数字:

re.search(r'[a-zA-Z0-9]{2,}', str)

re.search可能会帮助您,如果您希望匹配在字符串中的任何位置,而不仅仅是在开头。