parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Прошу помощи с regex.

G_Z 30.12.2004 18:41 / 31.12.2004 00:16

Никак не могу справится с достаточно тривиальной задачей...
Есть некий текст, в нём попадаются тэги.
Нужно, кавычки не являющиеся тэговыми заменить на ".
Я сделал так:
$text[<a href="/about/" title="Информация о сайте">Сайт</a>]
$text[^text.match[([^^=])"([^^<>]?[^^>])][gi]{${match.1}&quot^;$match.2]}]
Т.е. логично было бы предположить, что необходимо заменить все
кавычки, перед которыми нет =, и за которыми через любое количество
символов кроме > следует закрытие тэга.
Однако, получаю в результате:
<a href="/about/&quot; title="Информация о сайте">Сайт</a>
т.е. [^^<>]? не воспринимается как любое количество символов, кроме
< и >.
(< ввёл, чтобы конструкции вида ">"Сайт"...</) верно
обрабатывались.)

Ещё был вариант:
$text[^text.match[([^^<][^^<]?)"([^^>]?[^^>])][gi]{${match.1}&quot^;$match.2}]
Земеняются все, кроме 4-й кавычки.

Вообще, по сути, я вижу описание "нетэговой" кавычки так:
кавычка, перед которой через любое количество символов кроме < нет открытия тэга
и после которой через любое количество символов кроме > нет закрытия тэга.

Либо я уже уехал не в ту степь, либо лыжи не едут.
Подсобите советом.