Строка замены Regex, но не в теге HTML

git branch --merged master ответвления списков, объединенные в ведущее устройство

git branch --merged ответвления списков, объединенные в ГОЛОВА (т.е. подсказка текущего ответвления)

git branch --no-merged ответвления списков, которые не были объединены

По умолчанию, это относится только к локальным ответвлениям. Эти -a флаг покажет и локальные и удаленные ответвления, и -r, флаг показывает только удаленные ответвления.

5
задан tvanfosson 21 July 2009 в 11:45
поделиться

7 ответов

Для этого лучше использовать html-анализатор, а не регулярное выражение. Я не уверен, что это можно сделать на 100% надежно.

6
ответ дан 18 December 2019 в 12:00
поделиться

Вы можете или не сможете использовать регулярное выражение. Это зависит от того, насколько точно вы можете определить условия. Сказать, что вы хотите заменить строку, за исключением случаев, когда она находится в теге HTML, недостаточно узко, поскольку все на странице предположительно находится внутри некоторого тега HTML (BODY, если ничего другого).

Вероятно, лучше было бы пройти по дереву DOM для это вместо того, чтобы пытаться использовать регулярное выражение в HTML.

5
ответ дан 18 December 2019 в 12:00
поделиться

вы не можете этого сделать, ваш "google" всегда находится в каком-то теге, либо замените все, либо ничего

1
ответ дан 18 December 2019 в 12:00
поделиться

Анализировать HTML с помощью регулярного выражения будет непросто ни для чего, кроме тривиальных случаев, поскольку HTML не является регулярным .

Подробнее см. этот вопрос о стеке (и ответы).

1
ответ дан 18 December 2019 в 12:00
поделиться

Ну, поскольку все является частью тега, ваш запрос не имеет реального смысла. Если это просто тег , вы можете просто проверить эту часть. В основном убедившись, что у вас нет хвостового тега перед новым

0
ответ дан 18 December 2019 в 12:00
поделиться

Обходной путь

Если вы не можете использовать анализатор HTML или вполне уверены в вашем HTML-структуре, попробуйте следующую:

  1. сделать «плохое» смену
  2. Repeate Shume (<[^>] *) ( <[^>] +>) до 1 доллара в несколько раз (столько, сколько вам нужно)

Это простой обходной путь, но работает для меня.

Минусы? Ну ... Вы должны сделать замену дважды для случая ... ...> Как он удаляет только первый нежелательный тег из каждого тега на странице

[править:] Решение

Почему бы не использовать jQuery, поместите HTML-код на страницу и сделать что-то вроде этого:

$(containerOrSth).find('a').each(function(){
 if($(this).children().length==0){
 $(this).text($(this).text().replace('google','evil')); 
 }else{
 //here You have to care about children tags, but You have to know where to expect them - before or after text. comment for more help
 }
});
1
ответ дан 18 December 2019 в 12:00
поделиться
Другие вопросы по тегам:

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