捕获“xxxxxxxxxx”

时间:2009-07-12 08:33:28

标签: c# .net regex

这是一个非常简单的问题,但我有点难过。

我正在捕捉与“xxxxxxxxxx”匹配的文本部分。它工作正常。

string pattern = "(?<quotePair>\"[^/\"]*\")";

现在我想创建一个新模式来捕获“xxxxxxxxxx”......我用过:

string pattern2 = "(?<lrquotePair>“[^/\"“]*”)";

由于某种原因,第二种模式不会捕获任何东西。我错过了什么?

3 个答案:

答案 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,因此可能存在字符编码不匹配的问题。