匹配字母数字串的正则表达式
如果字符串 "x" 里面有任何字母或数字,就把这个字符串打印出来。 怎么用正则表达式来做到这一点呢? 下面的代码是错误的。
if re.search('^[A-Z]?[a-z]?[0-9]?', i):
print i
5 个回答
2
我建议你看看RegexBuddy。它可以很好地解释正则表达式。

4
这个问题其实挺复杂的。可惜的是,\w 包含了下划线 _,而 [a-z] 的解决方案是基于26个字母的字母表。关于下面的解决方案,请阅读 pydoc 中关于 LOCALE 和 UNICODE 的部分。
"[^_\\W]"
请注意,由于你只是测试某个东西是否存在,所以不需要使用量词——实际上,使用可能匹配0次的量词会导致错误的结果。
2
你想要
if re.search('[A-Za-z0-9]+', i):
print i