首页 > 解决方案 > Python正则表达式输出多个匹配项

问题描述

我有以下示例文本:

60CC
60 cc
60cc2
60CC(2)

和以下正则表达式来匹配这些实例:

(60\s?(cc)(\w|\(.\)){0,5})

但是我的第一场比赛的输出如下:

    Match 1
1.  60CC
2.  CC
3.  None

此示例可以在以下位置看到:https ://pythex.org/?regex=(60%5Cs%3F(cc)(%5Cw%7C%5C(.%5C))%7B0%2C5%7D)&test_string=60CC %0A60%20cc%0A60cc2%0A60CC(2)&ignorecase=1&multiline=0&dotall=0&verbose=0

如何将输出限制为 #1 ?

我正在使用 Python 正则表达式。我的python代码片段是:

re.findall("(60\s?(cc)(\w|\(.\)){0,5})", text, flags=re.IGNORECASE)

标签: pythonregexpython-3.xregex-group

解决方案


如何将输出限制为 #1 ?

您可以忽略 findall/finditer 结果中不相关的组。

或者,对您不关心的位使用非捕获组:只需?:在前导括号后添加,这样您仍然可以使用分组功能(例如交替),而不会在结果中捕获(拆分)组。


推荐阅读