Блокнот ++ HTML-тег / строка (HREF) заменить - PullRequest
0 голосов
/ 30 января 2019

Я нашел другой пост, в котором используется следующее регулярное выражение <a[^>]*>([^<]+)</a>, он прекрасно работает, однако я хочу использовать группу захвата для таргетинга URL-адресов, содержащих следующие 4 буквы RTRD.

Я использовал <a[^>]*>(RTRD+)</a> и это не сработало.

<a href="http:\\something.RTRD.html">TESTER</a> Я хочу удалить URL-адрес и оставить TESTER

<a href="http:\\something.RTRB.html">LEAVE</a> Я хочу не трогать этот.

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Используйте <a[^>]*RTRD[^>]*>([^<]+)<\/a> здесь.

Внутри открывающего тега (<a[^>]*>) должен быть где-то шаблон RTRD.Это можно сделать, заменив [^>]* на [^>]*RTRB[^>]*, который просто

  • [^>]* Все, что не является > (закрывающий тег)
  • RTRB ШаблонRTRB
  • [^>]* Опять все, что не является >

Но осторожно: это также соответствует <aRTRB>test</a> или <a id="RTRB">blubb</a>

И еслиу вас есть другой способ, кроме использования Regex в HTML, используйте этот способ (строковые операции и т. д.)

0 голосов
/ 30 января 2019

Тот, который будет работать: <a\s[^>]*href\=[\"][^\"]*(RTRD)[^\"]*[\"][^>]*>([^<]+)<\/a>

Разложение:

<a\s[^>]* найти открытие тега с пробелом, за которым следуют некоторые аргументы

href\=[\"][^\"]* find атрибут hrefс «открывающим и затем множественным не» закрывающимся

(RTRD) Ваша группа ключей

[^\"]*[\"] Найти остаток аргумента и закрывающее значение *

[^>]*>([^<]+)<\/a> Остаток отoriginal regex


Вещи, которые будут соответствовать вашему исходному RegExp: <a stuffhere!!.,?>RTRDDD</a> <a>RTRD</a>

Декомпозиция вашего RegExp:

<a[^>]*> Найдите открывающий тег с любыми свойствами

(RTRD+) Ищите группу RTRD, но также соответствует одному или нескольким D

<a[^>]*> Ищите закрывающий тег

...