【发布时间】:2022-01-20 00:40:22
【问题描述】:
我从正则表达式开始:^(S?g?[mfds]|S?G*g[msdf])$,然后将其转换为:^(S?)(G*)(g?)(m|s|d|f|)$
将捕获组分成 (S, G, g, m/f/d/s)
这是我应该匹配和不应该匹配的链接:https://regex101.com/r/q8b7zJ/1
我尝试通过在第二个捕获组中添加 (g?|G*g) 来解决此问题,以防止 Gm 匹配,但是,我的捕获组最终变为 (S, Gg, '', msdf)
如何在保持捕获组相同的同时匹配正确的字符串(S, G, g, m/s/d/f)
【问题讨论】:
-
如果你不使用 PyPi 正则表达式库,你所能做的就是使用
^(S?)(?:(g?)|(G*)(g))([mfds])$然后检查第 3 组和第 4 组或第 2 组是否匹配。