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

Sas*_*cha 5 .net regex

我想找到与给定正则表达式捕获组的最佳匹配。例子:

正则表达式:(AB|ABC)

示例:ABCDEF

结果:AB

但我想找到 ABC(选项列表中最合适的)。

如何才能做到这一点?(除了在小组中交换两种选择)?

感谢您的任何想法!

kvi*_*sta 4

尝试按顺序指定最佳匹配(例如,首先是最长的字符串)。许多 RE 引擎在“热切求值”模式下更喜欢最左边的优先。只有 POSIX RE 要求返回最长的匹配替代项:

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

  • 好建议,+1。我想补充一点,我更喜欢非 POSIX 正则表达式引擎的行为,因为它允许我自己确定我认为的“最佳”匹配 - 它不一定总是最长的匹配。尺寸不...你知道... (2认同)