我有一个字符串,它应该只包含字母数字字符。因此,对于验证,我有以下代码,但它不适用于某些情况。在Python中匹配正则表达式
p = re.compile(r'\w+')
bool(p.match("str"))
但这种失败在某些情况下,当str = "we1}"
结果是真喜欢,但它应该是假的,而str = ")we1"
返回false这是正确的。因此,如果我希望我的字符串只包含字母数字字符,那么如何正确处理所有这些情况。
我有一个字符串,它应该只包含字母数字字符。因此,对于验证,我有以下代码,但它不适用于某些情况。在Python中匹配正则表达式
p = re.compile(r'\w+')
bool(p.match("str"))
但这种失败在某些情况下,当str = "we1}"
结果是真喜欢,但它应该是假的,而str = ")we1"
返回false这是正确的。因此,如果我希望我的字符串只包含字母数字字符,那么如何正确处理所有这些情况。
使用^
(匹配字符串的开始)和$
(匹配字符串的结尾):
>>> p = re.compile(r'^\w+$')
>>> bool(p.match('str'))
True
>>> bool(p.match('str}'))
False
^
是可选,因为re.match
匹配字符串的开头。
确保使用线开始/结束锚(^ and $
)也:
p = re.compile(r'^\w+$')
没有^ and $
您正则表达式匹配只是we1
和你将错就错的成功返回。
注:\w
将匹配[A-Za-z0-9_]
(字母数字或下划线)
感谢您的解决方案。 – prattom