这是一个非常简单的问题,但我有点难过。
我正在捕捉与“xxxxxxxxxx”匹配的文本部分。它工作正常。
string pattern = "(?<quotePair>\"[^/\"]*\")";
现在我想创建一个新模式来捕获“xxxxxxxxxx”......我用过:
string pattern2 = "(?<lrquotePair>“[^/\"“]*”)";
由于某种原因,第二种模式不会捕获任何东西。我错过了什么?
答案 0 :(得分:3)
您的模式比您描述它们的方式更复杂 - 例如,第一个模式与"foo/bar"
不匹配,第二个模式与“foo/bar”
或“foo"bar”
不匹配。也许您的输入属于这些类别之一?
如果存在编码问题,那就不是正则表达式 - .NET正则表达式支持Unicode就好了。但是,您可能首先没有以正确的编码方式阅读文本 - 尝试将其打印出来并检查花式“”
引号是否仍然存在。特别是,如果将StreamReader
类与单参数构造函数(或File.OpenText
帮助程序)一起使用,则默认为输入的UTF-8编码,这可能不是您实际拥有的那样。
答案 1 :(得分:1)
Encoding might be getting in your way.请尝试使用\u0093
和\u0094
。
答案 2 :(得分:0)
你的第二个正则表达式没有任何问题。你确定输入字符串是否正确?您尝试匹配的字符不是纯ASCII,因此可能存在字符编码不匹配的问题。