在我的python代码中,我想在字符串中的任意位置为至少两个连续的字母表模式匹配一个字符串。
我用过re.match(r'([a-zA-Z][a-zA-Z])+',str)
匹配字符串,例如'abc',但不匹配'1abc'。我的正则表达式中的错误是什么?
请帮助 谢谢
答案 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
可能会帮助您,如果您希望匹配在字符串中的任何位置,而不仅仅是在开头。