如何找出与我的字符串匹配的备用正则表达式

2024-04-18 22:32:10 发布

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

如果我有一个正则表达式,它有一个|操作符来分隔两个可能的模式。有没有可能找到哪一个模式是匹配我的字符串?你知道吗

例如,如果我有模式([cC]at|[dD]og),并且在字符串clifford is a dog中找到匹配项。我是否可以回头看看,模式[dD]og是成功的匹配,而不是替代:[cC]at。你知道吗

我知道我可以尝试单独匹配每个备选模式,然后只选择成功的模式,但我想知道是否有另一个解决方案不需要对每个模式进行匹配尝试(我希望在尝试同时匹配几百个模式的情况下应用此方法)


Tags: 方法字符串is模式情况解决方案ddat
1条回答
网友
1楼 · 发布于 2024-04-18 22:32:10

您可以使用两个不同的组并检查其索引,如下所示:

([cC]at)|([dD]og)

Regular expression visualization

Regex demo

匹配信息

MATCH 1
    Group 2.    [14-17] `dog`
MATCH 2
    Group 1.    [33-36] `cat`

顺便说一句,如果出于某种原因您必须对整个备选方案进行分组,您可以使用以下非捕获组:

(?:([cC]at)|([dD]og))

相关问题 更多 >