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
(
"命名不正确"
)