我尝试创建一个只匹配字母并允许空格的正则表达式模式:
import re
user_input = raw_input('Input: ')
if re.match('[A-Za-z ]', user_input):
print user_input
然而,
输入o888
或类似内容时,似乎仍会出现匹配
答案 0 :(得分:5)
这是因为您的正则表达式允许部分匹配。
使用
if re.match('[A-Za-z ]*$', user_input):
^^
将模式锚定在最后并匹配0+字符。由于re.match
将模式锚定在字符串的开头,因此不需要^
锚点,但需要$
- 字符串结尾 - 以强制执行完整的字符串匹配。
如果您不想允许空字符串,请使用+
量词 - 一次或多次出现 - 而不是*
(零次或多次出现< / em>的)。