下面我有以下正则表达式:
alphanumeric = compile('^[\w\d ]+$')
我正在针对此正则表达式运行当前数据:
Tomkiewicz Zigomalas Andrade Mcwalters
我有一个单独的正则表达式来识别字母字符,但上面的数据仍然符合字母数字标准。
编辑:如何停止与上述正则表达式匹配的唯一alpha数据?
答案 0 :(得分:1)
描述:它可以有两种形式:
演示:
>>> an_re = r"(\d+[A-Z])|([A-Z]+\d)[\dA-Z]*"
>>> re.search(an_re, '12345', re.I) # not acceptable string
>>> re.search(an_re, 'abcd', re.I) # not acceptable string
>>> re.search(an_re, 'abc1', re.I) # acceptable string
<_sre.SRE_Match object at 0x14153e8>
>>> re.search(an_re, '1abc', re.I)
<_sre.SRE_Match object at 0x14153e8>
答案 1 :(得分:1)
使用预测来断言至少存在一个alpha和至少一个数字的条件:
(?=.*[a-zA-Z])(?=.*[0-9])^[\w\d ]+$
上面的RegEx使用两个前瞻来首先检查每个条件的整个字符串。前瞻搜索直到找到指定范围内的单个字符。如果断言匹配则转到下一个断言。我从OP的原始尝试借来的最后一部分,只是确保整个字符串由一个或多个下/上alpha,下划线,数字或空格组成。