我正在验证用户输入的文本,以便它只接受字母而不接受数字。到目前为止,当我输入数字(例如 56)时,我的代码工作正常,它警告我应该只输入字母,而当我输入字母时,它不会返回任何内容(就像它应该做的那样)。我的问题是,当我开始输入字母后跟数字时,它会接受它,例如(s45)。它的作用是接受第一个字母,但不接受整个字符串。我需要它来接受整个字符串。
def letterCheck(aString):
if len(aString) > 0:
if re.match("[a-zA-Z]", aString) != None:
return ""
return "Enter letters only"
将其锚定到开头和结尾,然后匹配一个或多个人物:
if re.match("^[a-zA-Z]+$", aString):
Here ^
锚定到字符串的开头,$
到最后,并且+
确保匹配 1 个或多个字符。
你最好只使用str.isalpha() http://docs.python.org/2/library/stdtypes.html#str.isalpha相反,虽然。无需在这里使用沉重的正则表达式锤子:
>>> 'foobar'.isalpha()
True
>>> 'foobar42'.isalpha()
False
>>> ''.isalpha()
False
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)