繁体   English   中英

在python中匹配正则表达式

[英]matching regular expression in python

我有一个仅应包含字母数字字符的字符串。 因此,为了进行验证,我有以下代码,但在某些情况下不起作用。

p = re.compile(r'\w+')
bool(p.match("str"))

但这在某些情况下会失败,例如当str = "we1}" ,结果为true,但应为false;而当str = ")we1"返回false时,这是正确的。 因此,如果我希望我的字符串仅由字母数字字符组成,该如何正确处理所有这些情况。

确保还使用行开始/结束锚点( ^ and $ ):

p = re.compile(r'^\w+$')

没有^ and $则您的正则表达式将仅匹配we1并且您将返回错误的成功。

注意: \\w将匹配[A-Za-z0-9_] _ [A-Za-z0-9_] (字母数字或下划线)

使用^ (匹配字符串的开头)和$ (匹配字符串的结尾):

>>> p = re.compile(r'^\w+$')
>>> bool(p.match('str'))
True
>>> bool(p.match('str}'))
False

^是可选的,因为re.match在字符串的开头匹配。

参见search()vs match()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM