【发布时间】:2015-07-29 13:51:51
【问题描述】:
我想我在 .NET Regex 引擎中发现了一个错误,并想知道是否有其他人遇到过它,或者它是否是某种预期的行为。
当匹配输入的结尾 character 断言 \Z 内的一组替代品 [] 内的前瞻组 (?=) 如在此示例表达式中,当它是已创建。
Regex test = new Regex(@"(?=[\Z])");
返回的异常是parsing "(?=[\Z])" - Unrecognized escape sequence \Z.
然而,正则表达式 ,[\Z] 可以工作(?=\Z) 也是如此
解决方法很简单,将(?=[]|\Z) 与替代组中所需的任何其他替代字符一起使用,但这仍然很奇怪。
编辑:我认为我的原始测试中一定有错字,因为正如 nhahtdh 指出的那样,上述模式实际上确实引发了异常。
使用 C# 在 .NET 4.5 中测试
【问题讨论】: