Регулярное выражение для сопоставления, если строка НЕ ​​имеет более одного периода. Соответствующие URL-пути, которые НЕ полностью определены - PullRequest
1 голос
/ 05 января 2010

Я загрузил HTML-документ в строку с помощью .NET. У меня есть этот REGEX, который я могу использовать для сопоставления URL-адресов и их замены, но мне нужно только сопоставить ТОЛЬКО URL-адреса, которые НЕ полностью определены.

Если это моя строка:

djdjdjdjdjdj src="www.example.com/images/x.gif" dkkdkdkdk src="/images/x.gif

Мой результат будет выглядеть так:

djdjdjdjdjdj src="subdomain.example.com/images/x.gif" dkkdkdkdk src="http://www.example.com/images/x.gif

Я думаю, мне нужен REGEX, который будет соответствовать строкам, которые начинаются с src или href и не имеют более одного периода. Это регулярное выражение сопоставляет ссылки, которые имеют хотя бы один период, поэтому они не соответствуют им правильно.

(src|href)\=(\"(.+?)[\.](.+?)\")

Спасибо за любую информацию. Я кодирую это в C #, но нужен только REGEX

Ответы [ 2 ]

3 голосов
/ 05 января 2010

Я бы посоветовал вам попробовать что-то вроде парсера HTML Agility, как это неоднократно рекомендовано на этом сайте: Ищите парсер C # HTML

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

1 голос
/ 05 января 2010

Предупреждение: HTML + регулярное выражение = круглый колышек + квадратное отверстие

Как говорится, вот молоток, который вы просили

(src|href)\=(\"[^."]*\.?[^."]\")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...