在字符串中匹配至少两个连续字母
在我的Python代码中,我想要检查一个字符串,看看里面是否有至少两个连续的字母,不管它们出现在字符串的哪个位置。
我用了这个代码:re.match(r'([a-zA-Z][a-zA-Z])+',str)
这个代码可以匹配像'abc'这样的字符串,但却匹配不了'1abc'。我的正则表达式哪里出错了呢?
请帮帮我,谢谢!
相关问题:
3 个回答
2
我不太明白你想要什么,不过从你给的例子来看,你似乎误解了re.match的作用。你可以看看这个链接,了解一下search()和match()的区别,具体内容在Python的re模块文档里。
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 可能会对你有帮助。
2
这个方法 match 只会从字符串的开头开始查找。你应该使用 search 方法。
另外,你的正则表达式是为了匹配偶数个字符而设计的。
re.search(r'([a-zA-Z][a-zA-Z]+)',str)