Проблема с регулярным выражением c # для извлечения метатегов - PullRequest
2 голосов
/ 28 апреля 2009

У меня есть это регулярное выражение, которое извлекает мета-теги из документов HTML, но выдает мне ошибки, когда я включаю его в свое веб-приложение.

выражение

@"<meta[\\s]+[^>]*?name[\\s]?=[\\s\"\']+(.*?)[\\s\"\']+content[\\s]?=[\\s\"\']+(.*?)[\"\']+.*?>" ;

что-то не так?

Ответы [ 3 ]

8 голосов
/ 28 апреля 2009

Вы используете как синтаксис @ (дословная строка), так и экранированные косые черты в примере, который вы разместили. Вам нужно либо удалить символ @, либо удалить лишние косые черты и избежать двойных кавычек, удвоив их, тогда это должно сработать.

(Для чего стоит, если вы собираетесь работать с регулярными выражениями на постоянной основе, я бы предложил инвестировать в копию RegExBuddy .)

5 голосов
/ 28 апреля 2009

При использовании строкового литерала (@ "") вам не нужно удваивать обратную косую черту - все в строке принимается как есть - за исключением двойных кавычек, которые нужно удваивать:

@"<meta[\s]+[^>]*?name[\s]?=[\s""']+(.*?)[\s""']+content[\s]?=[\s""']+(.*?)[""']+.*?>"

0 голосов
/ 28 апреля 2009

Джероми прав. Вы используете экранированную строку и строку литерала. С самим регулярным выражением все в порядке ... Так что, я думаю, вот в чем проблема.

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