Захват «хххххххххх» - PullRequest
0 голосов
/ 12 июля 2009

Это довольно простой вопрос, но я несколько озадачен.

Я записываю фрагменты текста, которые соответствуют «xxxxxxxxxx». Работает нормально.

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

Теперь я хочу создать новый шаблон для захвата «xxxxxxxxxx» ... Я использовал:

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

По какой-то причине второй паттерн ничего не поймает. Чего мне не хватает?

Ответы [ 3 ]

3 голосов
/ 12 июля 2009

Ваши шаблоны более сложны, чем то, как вы их описываете - например, первый не будет соответствовать "foo/bar", а второй не будет соответствовать “foo/bar” или “foo"bar”. Возможно, ваш вклад относится к одной из этих категорий?

Если есть проблема с кодировкой, это не относится к регулярным выражениям - регулярные выражения .NET прекрасно поддерживают Unicode. Но, возможно, вы сначала не прочитали текст в правильной кодировке - попробуйте распечатать его и убедитесь, что причудливые кавычки “” все еще там. В частности, если вы используете класс StreamReader с конструктором с одним аргументом (или File.OpenText помощником), по умолчанию для ввода используется кодировка UTF-8, которая может быть не такой, как у вас.

1 голос
/ 12 июля 2009

Возможно, вам мешает кодировка. Попробуйте вместо \u0093 и \u0094.

0 голосов
/ 12 июля 2009

Нет ничего плохого в вашем втором регулярном выражении. Вы уверены, что введенная строка правильная? Символы, которые вы пытаетесь сопоставить, не являются простым ASCII, поэтому, возможно, существует проблема с несовпадением кодировки символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...