我有一个带有两个命名部分和一个可选连字符分隔符的正则表达式。
^(?<Left>xxx)-?(?<Right>yyy)$
(我已经简化了实际的正则表达式。想象一下两个非常长且复杂的正则表达式,而不是“xxx”和“yyy”。)
但是,由于连字符是可选的,因此可以在输入字符串中将隐含的分隔符添加到不同的位置。有没有办法通过说 Left 或 Right 应该占据输入字符串的更大份额来解决歧义?
例如,对于可以拆分为“ABC”/“DEF”或“ABCDE”/“F”的输入“ABCDEF”,两者都是两个子正则表达式的有效匹配项。假设我更喜欢第二次拆分,因为我希望“左”占据最大的块,只要“右”留下有效的余数。
我正在使用.NET 的正则表达式库,但我希望有一种标准技术。