我正在使用 C# Regex 类。我正在尝试将两个字符串从一个字符串中拆分出来。源(输入)字符串按以下方式构造:
第一部分必须匹配 PO|P|S|[1-5](在正则表达式语法中)。
第二部分可以是 VP|GZ|GAR|PP|NAD|TER|NT|OT|LO(同样,正则表达式语法)。第二部分可以出现零次或一次。
可接受的示例是“PO”(一组)、“POGAR”(两组 PO+GAR)、“POT”(P+OT)...
所以我使用了以下正则表达式:
Regex r = new Regex("^(?<first>PO|P|S|[1-5])(?<second>VP|GZ|GAR|PP|NAD|TER|NT|OT|LO)?$");
Match match = r.Match(potentialToken);
当potentialToken为“PO”时,返回3组!怎么来的?我只期待一组(第一组)。
match.Groups 是 {"PO","PO",""}
命名组可以 - match.Groups["first"] 返回 1 个实例,而 match.Groups["second"].Success 为 false。