从正则表达式捕获组中找到最佳匹配

5
我希望能够在给定的正则表达式捕获组中找到最佳匹配。 例子: 正则表达式:(AB|ABC) 样本:ABCDEF 结果:AB 但是我想找到ABC(选项列表中的最佳匹配)。 如何做到这一点?(除了交换组中的两个替代项之外) 感谢任何想法!

我怀疑你能做到这样的事情。 - Alin Purcaru
1个回答

4

尝试按顺序指定最佳匹配项(例如,优先匹配最长的字符串)。许多正则表达式引擎在其“贪婪模式”下更喜欢从左侧开始匹配。只有POSIX正则表达式强制返回最长匹配的备选项:

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


2
好建议,+1。我想补充一点,我更喜欢非POSIX正则表达式引擎的行为,因为它允许我自己确定我认为的“最佳”匹配-它并不总是最长的。大小不重要...你知道的... - Tim Pietzcker
是的,你说得对。 我将通过捕获组中的顺序来找到最佳匹配。 - Sascha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接