我尝试创建一个只匹配字母并允许空格的正则表达式模式:
import re
user_input = raw_input('Input: ')
if re.match('[A-Za-z ]', user_input):
print user_input
但是,
当输入 o888 或类似的东西时,匹配似乎仍然发生
请您参考如下方法:
发生这种情况是因为您的正则表达式允许部分 匹配。
使用
if re.match('[A-Za-z ]*$', user_input):
^^
将模式锚定在末尾并匹配 0+ 个字符。作为re.match将模式锚定在字符串的开头,^ anchor 不是必需的,但是 $ - 字符串结尾 - 是强制执行完整字符串匹配所必需的。
如果您不想允许空字符串,请使用 + 量词 - 一次或多次出现 - 而不是 *(零次或多次出现)。
