Не может выяснить, почему этот regex не применяется

Я использую Privoxy 3.0.10.0 для фильтрации веб-страниц, прежде чем они будут переданы браузеру.

Я не могу выяснить, почему этот простой regex не инициировал переписывание. Возможно, у кого-то более опытного будет идея:

Вот то, на что похоже, когда я поразил CTRL-U Firefox для просмотра источника HTML:

<font color=#FF4AFF>JohnDoe</font>

Вот мой regex; я также добавил, что "i" переключаются для игнорирования регистра, напрасно

s|(<font color=.+?>JohnDoe</font>)|<span class=myclass>$1</span>|g

Спасибо за любую подсказку.

2
задан 25.07.2009, 12:10

3 ответа

Сам regex хорошо работает как этот пример Python шоу:

import re
print re.sub(r"(<font color=.+?>JohnDoe</font>)",
             r"<span class=myclass>\1</span>",
             "<font color=#FF4AFF>JohnDoe</font>")
# Prints <span class=myclass><font color=#FF4AFF>JohnDoe</font></span>

(принятие Privoxy использует тот же regex синтаксис, запрещая \1 по сравнению с. $1 различие, но похоже, что это делает.)

Я предполагаю, что проблема заключается в другом месте - пробуют regex, который не может перестать работать, как замена a с b, видеть, имеет ли это какой-либо эффект вообще.

4
ответ дан 08.12.2019, 05:33

Не уверенный, какой механизм РЕ Вы используете, но пытаетесь измениться на 1$ на \1 - это - то, как обратные ссылки обычно упоминаются в жемчуге, по крайней мере.

0
ответ дан 08.12.2019, 05:33
  • 1
    Иногда необходимо будет использовать \\1, в зависимости от в том, какой формат Вы пишете regex. – jtbandes 25.07.2009, 19:58
  • 2
    В перезаписи URL Apache можно было бы использовать 1$. Но, если бы \1 должен действительно использоваться в этом случае, то я ожидал бы, что вывод будет <span class=myclass>$1</span> - который, надо надеяться, был бы отмечен в вопросе затем... – Arjan 25.07.2009, 21:10

Парни Танска. Оказывается, что Privoxy был жадным, и я не заметил, что требовалось намного больше данных, чем я думал.

2
ответ дан 08.12.2019, 05:33

Теги

Похожие вопросы