>>> regex = '.?(\w+)'
.? -> 这意味着可能有一个字符/数字 (\w+) -> 这意味着捕获一个字符直到出现空格
match.group(0)
将返回您想要匹配的字符串,这就是您看到“Amazon”的原因
match.group(1)
将返回字符串中匹配的第一个括号分组的内容,
'.?(\w+)'
意味着匹配一个字符串(mazon),它之前可能有一个字符(A)。
你代码中的括号在正则表达式中有另一个含义,这意味着将内容分组以供以后使用,而不是作为模式匹配在这里。
你真正想要的是捕获括号内的内容,括号需要通过放置“\”来定期转义
>>> regex = '.*\((\w+)\)'
>>> match = re.match(regex, a)
>>> match.group(0)
'Amazon (AMZN)'
>>> match.group(1)
'AMZN'
'.*\((\w+)\)'
让我们把它分解成细节
... \(_____\)
-> 这意味着匹配括号
..... (___)
-> 这意味着 match.group(1) 的内容内部分组
.......\w+ -> 这意味着匹配一个或多个字符