【发布时间】:2014-12-10 10:41:31
【问题描述】:
我在这里找到了一个引用解析正则表达式:http://linklens.blogspot.com.au/2009/04/citation-parsing-regular-expression.html,它在 http://www.regexr.com 测试时工作正常,但是在 c# 中尝试使用 Regex.Match 时它不起作用。
这是表达式(带有转义的 \"")- 从 c# 评估并在 regexr 中重新测试。
/([^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
熟悉正则表达式的人会注意到这个相当复杂的表达式中可能与 c# 不兼容的地方吗?
编辑:
链接到带有一些文本引用的正则表达式示例:http://regexr.com/3a232
var myMatches = @"/([^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";
var matches = Regex.Matches(TestApp.Properties.Resources.Citation, myMatches);
Console.WriteLine(matches.Count);
返回 0 个匹配项。
【问题讨论】:
-
什么值/文本与您认为的不匹配。
-
你能发布 regxr 链接吗?
-
展示如何在 C# 代码中使用正则表达式。很可能是你用错了。
标签: c# regex evaluation