我在此处找到了一个解析正则表达式的引文: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场比赛。
答案 0 :(得分:2)
你正在逃避引号错误。它永远不会被\""
转义。
在常规字符串中,引号用\"
转义。
在@ delimited字符串中,引号用""
转义。
您应该从字符串的开头删除/
,从字符串的末尾删除/g
。它们不是模式的一部分,即正则表达式文字的语法(顺便说一下,它不存在于C#语法中)。