正则表达式在c#中不匹配但在regexr中匹配

时间:2014-12-10 10:41:31

标签: c# regex evaluation

我在此处找到了一个解析正则表达式的引文:http://linklens.blogspot.com.au/2009/04/citation-parsing-regular-expression.html并且在http://www.regexr.com进行测试时工作正常,但在尝试使用{{1}时它无法正常工作在c#。

这是表达式(带有转义的\"") - 从c#评估并在regexr中重新测试。

Regex.Match

熟悉正则表达式的人是否会在这个相当复杂的表达式中注意到与c#不兼容的任何内容?

编辑:

使用一些文字引用链接到regexr示例:http://regexr.com/3a232

/([^e][^d][^s][^\.]\s|\d+\.?\s|^)([A-Z][a-z]{1,},?((\s[A-Z](\.|,|\.,))(\s?[A-Z](\.|,|\.,))*))(\s?(,|and|&|,\s?and)?\s?([A-Z][a-z]{1,},?((\s[A-Z](\.|,|\.,))(\s?[A-Z](\.|,|\.,))*)))*\s*(\(?\d\d\d\d\)?\.?)?\s*(\""|“)?((([A-Za-z:,\r\n]{2,}\s?){3,}))\.?(\""|”)?/g

返回0场比赛。

1 个答案:

答案 0 :(得分:2)

你正在逃避引号错误。它永远不会被\""转义。

在常规字符串中,引号用\"转义。

在@ delimited字符串中,引号用""转义。


您应该从字符串的开头删除/,从字符串的末尾删除/g。它们不是模式的一部分,即正则表达式文字的语法(顺便说一下,它不存在于C#语法中)。