我正在匹配包含可选组和非可选组混合的重复组。当我迭代捕获时,捕获集合总是折叠,即它们不为非匹配项插入null元素。
有没有办法保留捕获集合中的匹配顺序,以便将任何省略的可选项插入为null,从而确保捕获集合元素跨组对应?
为了澄清,假设我的重复(父)组匹配了三次,并且在三个匹配中的一个中省略了可选的子组,但是在另外两个组中存在,我最终得到了一个捕获集合。省略的项目,是一个比其他捕获集合少的元素。我怎么知道哪个父组省略了可选项?
我想可以使用捕获集合项的Index属性并检查它是否属于父组的范围,但如果非匹配在捕获集合中返回了null项,则会更容易。有没有办法实现这个目标?
答案 0 :(得分:10)
而不是(pattern)?
使用(pattern|)
而你应该得到你想要的......