import re
name1 = "a#pple" # 命名正确, a
name2 = "apple!"
ret = re.match("[a-zA-Z_][a-zA-Z0-9_]*", name1)
if ret:
print("命名正确,", ret.group())
else:
print("命名不正确")
明明命名不合法,为什么返回正确,而且只匹配到正确部分
- 因为默认match只会匹配开头(如果开头正确了,就等于匹配成功了)
严格的匹配开头与结尾
- 加上^和$(表示开头和结尾)
import re
name1 = "a#pple"
name2 = "apple!"
ret = re.match("^[a-zA-Z_][a-zA-Z0-9_]*$", name1)
if ret:
print("命名正确,", ret.group())
else:
print("命名不正确")

本文探讨了Python正则表达式中如何实现严格匹配字符串的开头和结尾,强调了`^`和`$`在匹配过程中的作用,解释了为何在某些情况下默认的match方法可能只匹配到部分正确内容。

2207

被折叠的 条评论
为什么被折叠?



