python正则表达式,如何提取最长的重叠组

use*_*454 4 python regex

如何提取以相同方式开始的最长组

例如,从给定的字符串中,我想提取 CS 或 CSI 的最长匹配项。

我试过这个“(CS|CSI).*”,它会返回 CS 而不是 CSI,即使 CSI 可用。

如果我执行“(CSI|CS).*”,那么如果匹配,我就会得到 CSI,所以我认为解决方案是始终将重叠组中较短的组放在较长的组之后。

有没有更清晰的方式用 re 来表达这一点?结果取决于您链接组的顺序,不知何故让人感到困惑。

Ala*_*ore 5

不,这就是它的工作原理,至少在 Perl 派生的正则表达式风格中,如 Python、JavaScript、.NET 等。

http://www.regular-expressions.info/alternation.html