[英]Python Regex: (\w+) not picking up up numbers with 2 digits or less
我正在尝试使用python的正则表达式来识别来自用户的3个令牌,这些令牌都可以由字母或数字组成。
这是我正在使用的代码:
match = re.search(r'(\w+)(\w+)(\w+)', inputStr)
if not match:
print("Not valid")
else:
numWord1 = match.group(0)
numword2 = match.group(1)
numWord3 = match.group(2)
print(num1)
其中inputStr来自raw_input()。 我运行了代码,这是每次输入所得到的
I typed: 1 2 3
I got: Not valid
I typed: 11 22 33
I got: Not valid
I typed: 111 222 333
I got: 111
I typed: 1 hello 3
I got: hello
I typed: hello 2 3
I got: hello
我以为\\ w可以匹配任何字母,数字或下划线,并且通过包含+,我可以在我的组中获得1个或多个它的实例。
\\w
与数字之间的空格不匹配-正如您正确指出的那样, \\w
与字母,数字或下划线匹配, 但不匹配空格 。 尝试:
match = re.search(r'(\w+)\s+(\w+)\s+(\w+)', inputStr)
\\s+
在数字组之间匹配一个或多个空格字符。
经 Python 3测试的示例 :
>>> print(re.search(r'(\w+)\s+(\w+)\s+(\w+)',input('? ')).group(1))
? 1 2 3
1
认为\\ w匹配任何字母,数字或下划线
是的,但是\\w
与空格不匹配,例如。
1 2 3
r'(\\w+)(\\w+)(\\w+)'
您的格式正在寻找3次或以上的任何字母数字或下划线
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.