我想检查字符串是否以数字开头,然后有9个字母数字字符。但是,这会返回yes而不是no。为什么呢?
import re
if re.search(r'[0-9][0-9]{9}','92211sssff222'):
print "yes"
else:
print "no"
答案 0 :(得分:1)
字母数字范围应该类似于[A-Za-z0-9]
。此外,由于您希望字符串以 start 使用此格式,请将^
(字符串的开头)符号与其完全匹配,否则将使用' !!!92211sssff222'
之类的字符串也匹配。
固定代码:
import re
if re.search(r'^[0-9][A-Za-z0-9]{9}','92211sssff222'):
print "yes"
else:
print "no"
答案 1 :(得分:1)
它应该是这样的。既然你说它应该开始你必须使用指定开始的上限符号^
根据您的正则表达式,您将匹配十个连续数字,这可能发生在字符串
中的任何位置import re
if re.search(r'^[0-9][a-zA-Z0-9]{9}','9sssssssff222'):
print ("yes")
else:
print ("no")
yes