RegEx - удалить HTML-гиперссылки на основе текста ссылки - PullRequest
1 голос
/ 19 марта 2010

У меня есть текст с гиперссылками HTML.Я хочу удалить гиперссылки, но только определенные.

Например, я начинаю с этого:

This is text <a href="link/to/somewhere">Link to Remove</a> and more text with another link <a href="/link/to/somewhere/else">Keep this link</a>

Я хочу иметь:

This is text and more text with another link <a href="/link/to/somewhere/else">Keep this link</a> 

У меня есть этоВыражение RegEx,

<a\s[^>]*>.*?</a>

... но оно соответствует ВСЕМ ссылкам.

Что мне нужно добавить к этому выражению, чтобы соответствовать только ссылкам с текстом ссылки 'Удалить'(например) в нем?

спасибо заранее.

Ответы [ 3 ]

1 голос
/ 19 марта 2010

Вы, вероятно, получите много отзывов о том, чтобы не использовать регулярные выражения в HTML ... но если вы решите использовать их, попробуйте следующее:

 <a\s[^>]*>.*?Remove.*?</a>

Это где "Удалить" лежит где-то в тексте ссылки.

0 голосов
/ 23 апреля 2010

(. *?) <А. * [Rr] алить. *? А> (. *)

реконструировать с: $ 1 $ 2

0 голосов
/ 19 марта 2010
$str=~/(.*)<a.*<\/a>([a-z ]+ <a.*<\/a>)/;
print "$1$2";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...