Подскажите регулярку

twisterrr

Client
Регистрация
25.12.2011
Сообщения
284
Благодарностей
23
Баллы
18
вроде подучил регулярные выражение но чет не могу сообразить:
есть строка:
<b>Жанр</b>: <a href="/tag/7/Мультфильм" target="_blank">Мультфильм</a>, <a href="/tag/7/фэнтези" target="_blank">фэнтези</a>, <a href="/tag/7/комедия" target="_blank">комедия</a>, <a href="/tag/7/приключения" target="_blank">приключения</a>, <a href="/tag/7/семейный" target="_blank">семейный</a>, <a href="/tag/7/полнометражный" target="_blank">полнометражный</a>

нужно удалить все элементы <a></a> но оставить текст внутри т.е. после обработки текста строка должна выглядеть так:
<b>Жанр</b>: Мультфильм, фэнтези, комедия и т.д.

пробовал так <a\ href.*target="_blank"> но конечно же это не подходит так как захватывает все до последнего атрибута target="_blank">
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 614
Благодарностей
4 604
Баллы
113

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
742
Баллы
113
Так можно
(?<=">)[\w\W]*?(?=</a>)
А жанр <b>Жанр</b>: потом добавить
upload_2019-8-22_10-51-38.png
 

twisterrr

Client
Регистрация
25.12.2011
Сообщения
284
Благодарностей
23
Баллы
18

twisterrr

Client
Регистрация
25.12.2011
Сообщения
284
Благодарностей
23
Баллы
18
отлично, работает... блин только понять немогу по какому принципы оно срабатывает, можно разъяснить?
сначала мы цепляемся за закрывающий тег </b> , затем идет квантификатор ? - это один любой символ или отсутствие т.е. пропускаем "b" затем почему то "a" но до "a" еще символы ">: <", затем не должно быть "<>" дальше все что годно до символа ">" , стыдно, вроде простая конструкция, а как она работает не соображаю (facepalm)
 

twisterrr

Client
Регистрация
25.12.2011
Сообщения
284
Благодарностей
23
Баллы
18
вроде разобрался "</?a" - квантификатор после слеш "?" обозначает что он (слеш) может быть или не быть верно? тогда конструкция становится понятной :bu:

можно проще: </?a.*?>
 
Последнее редактирование:

twisterrr

Client
Регистрация
25.12.2011
Сообщения
284
Благодарностей
23
Баллы
18
а если в тексте еще присутствуют ссылки например:

<a href="http://www.imdb.com/title/tt6428676/" target="_blank"><img src="http://s.rutor.info/imdb/pic/6428676.gif"></a> <a href="http://www.kinopoisk.ru/film/1041723/" target="_blank"><img src="http://www.kinopoisk.ru/rating/1041723.gif"></a>

а нам нужно вытащить только из этой строки
<b>Жанр</b>: <a href="/tag/7/Мультфильм" target="_blank">Мультфильм</a>, <a href="/tag/7/фэнтези" target="_blank">фэнтези</a>, <a href="/tag/7/комедия" target="_blank">комедия</a>, <a href="/tag/7/приключения" target="_blank">приключения</a>, <a href="/tag/7/семейный" target="_blank">семейный</a>, <a href="/tag/7/полнометражный" target="_blank">полнометражный</a>

как быть?
такое не подходит </?a.*?tag.*?> почему то захватывает запятую и не берет последний закрывающий тег </a>
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 614
Благодарностей
4 604
Баллы
113
а если в тексте еще присутствуют ссылки например:

<a href="http://www.imdb.com/title/tt6428676/" target="_blank"><img src="http://s.rutor.info/imdb/pic/6428676.gif"></a> <a href="http://www.kinopoisk.ru/film/1041723/" target="_blank"><img src="http://www.kinopoisk.ru/rating/1041723.gif"></a>

а нам нужно вытащить только из этой строки
<b>Жанр</b>: <a href="/tag/7/Мультфильм" target="_blank">Мультфильм</a>, <a href="/tag/7/фэнтези" target="_blank">фэнтези</a>, <a href="/tag/7/комедия" target="_blank">комедия</a>, <a href="/tag/7/приключения" target="_blank">приключения</a>, <a href="/tag/7/семейный" target="_blank">семейный</a>, <a href="/tag/7/полнометражный" target="_blank">полнометражный</a>

как быть?
такое не подходит </?a.*?tag.*?> почему то захватывает запятую и не берет последний закрывающий тег </a>
ты либо заменаешь за 1+ проход всё неугодное, либо парсишь за несколько заходов всё необходимое. И что ты хочешь в новых обстоятельствах мне не понятно
 

twisterrr

Client
Регистрация
25.12.2011
Сообщения
284
Благодарностей
23
Баллы
18
что ты хочешь в новых обстоятельствах мне не понятно
если мы применим к этому
<b>Жанр</b>: <a href="/tag/7/Мультфильм" target="_blank">Мультфильм</a>, <a href="/tag/7/фэнтези" target="_blank">фэнтези</a>, <a href="/tag/7/комедия" target="_blank">комедия</a>, <a href="/tag/7/приключения" target="_blank">приключения</a>, <a href="/tag/7/семейный" target="_blank">семейный</a>, <a href="/tag/7/полнометражный" target="_blank">полнометражный</a>
<a href="http://www.imdb.com/title/tt6428676/" target="_blank"><img src="http://s.rutor.info/imdb/pic/6428676.gif"></a> <a href="http://www.kinopoisk.ru/film/1041723/" target="_blank"><img src="http://www.kinopoisk.ru/rating/1041723.gif"></a>

маску </?a[^<>]*> мы найдем все ссылки но необходимо найти только те ссылки где путь ссылки начинается с /tag/ , а вот эту строку:
<a href="http://www.imdb.com/title/tt6428676/" target="_blank"><img src="http://s.rutor.info/imdb/pic/6428676.gif"></a> <a href="http://www.kinopoisk.ru/film/1041723/" target="_blank"><img src="http://www.kinopoisk.ru/rating/1041723.gif"></a>
оставить как есть
 

twisterrr

Client
Регистрация
25.12.2011
Сообщения
284
Благодарностей
23
Баллы
18
ты либо заменаешь за 1+ проход всё неугодное
за два действия я нашел вариант, но мне просто самому интересно возможно ли создать маску что бы сделать обработку за одно действие
 

twisterrr

Client
Регистрация
25.12.2011
Сообщения
284
Благодарностей
23
Баллы
18
все вопрос закрыт, (<a.*?tag.*?>|</a>(?=,)|(?<=[а-я])</a>) подходит под все условия
 

cherus09

Client
Регистрация
10.10.2016
Сообщения
171
Благодарностей
14
Баллы
18
Привет, хочу сделать универсальный поиск текста по файлам.
Схема такая:
Во входных настройках шаблона указываются данные для поиска это может быть как одиночное слово, так и предложение включающие в себя абсолютно любые символы и цифры. Думаю это реализовать как-то с помощью регулярного выражение, чтобы в него в определенном месте вставлялась данные из переменной из входных настроек.
Сломал уже голову как эту регулярку составить. Может, кто подскажет?
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)