Python Regex:(\w+)未提取2位或更少的数字

2024-09-28 20:42:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用python的regex来识别来自用户的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()。我运行了我的代码,下面是每个输入的结果

^{pr2}$

我认为\w匹配任何字母、数字或下划线,并且通过包含+我可以在我的组中获得一个或多个实例。在


Tags: 代码用户researchifmatch字母group
2条回答

thought \w matched any letter, digit, or underscore

是,但\w与空格不匹配例如

1 2 3

r'(\w+)(\w+)(\w+)'

您的模式正在寻找任何字母数字或下划线,3倍或更多

\w与数字之间的空格不匹配-正如您正确指出的,\w匹配字母、数字或下划线,而不是空格。尝试:

match = re.search(r'(\w+)\s+(\w+)\s+(\w+)', inputStr)

\s+匹配数字组之间的一个或多个空白字符。在

示例在Python 3中测试:

^{pr2}$

相关问题 更多 >