RegEx для установки IMG src = "" - PullRequest
0 голосов
/ 10 августа 2009

У меня есть сырой HTML, и мне нужно установить все IMG src = "http://foo".

Это RegEx, который у меня есть, и похоже, что он работает. В моей среде можно с уверенностью предположить, что теги прописные, а атрибуты строчные. Я делаю это в .Net, но я не думаю, что платформа действительно имеет значение здесь. \ s - это любые пробелы в .Net RegEx engine.

Кто-нибудь может улучшить это?

Regex.Replace(htmlText, "(<IMG[^>]*\\ssrc=\")([^\"]*)(\"[^>]*>)", "$1http://foo$3")

Ответы [ 4 ]

2 голосов
/ 10 августа 2009

Сначала сопоставьте весь тег IMG, а затем сопоставьте атрибут src="([^\"]*)", заменив его и получив строку замены только для части src = "...".

Затем можно использовать исходное совпадение, выполнить поиск по всему тегу и заменить его этим целым тегом.

1 голос
/ 10 августа 2009

не регулярное выражение, но попробуйте txt2re.com

возможно, это поможет вам начать: http://txt2re.com/index-ruby.php3?s=%3CIMG%20src=%22http://foo.bar/baz.jpg%22%20/%3E&1

0 голосов
/ 07 сентября 2011

Другой подход заключается в использовании анализатора HTML. ИМО, вам гораздо лучше использовать парсер, чем регулярное выражение для этой задачи.

0 голосов
/ 10 августа 2009

Может быть разрешено несколько пробелов с \s+

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