Я нашел еще один пост, в котором используется следующее регулярное выражение <a[^>]*>([^<]+)</a>, оно отлично работает, однако я хочу использовать группу захвата для целевых URL-адресов, в которых есть следующие 4 буквы RTRD.
Я использовал <a[^>]*>(RTRD+)</a>, и это не сработало.
<a href = "http:\\something.RTRD.html">TESTER</a> Я хочу удалить URL-адрес и выйти из ТЕСТЕРА
<a href = "http:\\something.RTRB.html">LEAVE</a> Я хочу не трогать этот.
Пожалуйста, отредактируйте свой вопрос и добавьте пример ввода текста и ожидаемый результат.
Это может отлично работать, но никогда не гарантирует, что вы продолжите это делать.
Итак, что вы имеете в виду, это удалить элемент привязки (теги <a> и все, что внутри) и оставить только текст, когда этот текст содержит любую из букв R, T или D где-либо в нем?





Тот, который будет работать: <a\s[^>]*href\=[\"][^\"]*(RTRD)[^\"]*[\"][^>]*>([^<]+)</a>
Разложение:
<a\s[^>]* находит открытие тега с пробелом, за которым следуют некоторые аргументы
href\=[\"][^\"]* находит атрибут href с "открытием, а затем с несколькими не закрывающимися"
(RTRD) Ваша ключевая группа
[^\"]*[\"] Найти остаток аргумента и закрыть "
[^>]*>([^<]+)</a> Остаток исходного регулярного выражения
Вещи, с которыми будет совпадать ваш исходный RegExp:
<a stuffhere!!.,?>RTRDDD</a><a>RTRD</a>
Разложение вашего регулярного выражения:
<a[^>]*> Ищите открывающий тег с любыми свойствами
(RTRD+) Ищет группу RTRD, но также соответствует одному или нескольким D
<a[^>]*> Ищите закрывающий тег
Это удаляет URL-адрес, но оставляет слово RTRD. Я пытался оставить имя TESTER на месте. У меня есть замена на \1
Попробуйте установить замену на \2, которая является второй группой захвата ([^<]+).
Используйте <a[^>]*RTRD[^>]*>([^<]+)</a> здесь.
Где-то внутри открывающего тега (<a[^>]*>) должен быть шаблон RTRD. Это можно сделать, заменив [^>]* на [^>]*RTRB[^>]*, который просто
[^>]* Все, что не является > (закрывающий тег)RTRB Паттерн RTRB[^>]* Опять все, что не >Но осторожно: это также соответствует <aRTRB>test</a> или <a id = "RTRB">blubb</a>.
И если у вас есть какой-либо другой способ, кроме использования Regex в HTML, используйте этот способ (строковые операции и т.д.)
В настоящее время ваше регулярное выражение нацелено на текст ссылки, а не на атрибут
href...