1

Я использую блокнот ++ Мне интересно, можно ли заменить каждую 3-ю и 4-ю итерацию в строках HTML.

Исходный код выглядит так:

<div class="ui-bar ui-bar-d"
<div class="ui-bar ui-bar-d"
<div class="ui-bar ui-bar-d"
<div class="ui-bar ui-bar-d"

... повторяющиеся

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

<div class="ui-bar ui-bar-d"
<div class="ui-bar ui-bar-d"
<div class="ui-bar bg ui-bar-d"
<div class="ui-bar bg ui-bar-d"

... повторяющиеся

Есть ли регулярные выражения, которые будут делать это?

1 ответ1

2

Я полагаю, ваш HTML выглядит

<div class="ui-bar ui-bar-d" ... and something else ... (newline)
<div class="ui-bar ui-bar-d" ... and something else ... (newline)
<div class="ui-bar ui-bar-d" ... and something else ... (newline)
<div class="ui-bar ui-bar-d" ... and something else ... (newline)
... etc...

и предположим, что вы хотите сохранить ... and something else ... часть.

В поле поиска попробуйте

(<div class="ui-bar ui-bar-d".*\r\n)(<div class="ui-bar ui-bar-d".*\r\n)<div class="ui-bar ui-bar-d"(.*\r\n)<div class="ui-bar ui-bar-d"(.*\r\n)

Заменить

\1\2<div class="ui-bar bg ui-bar-d"\3<div class="ui-bar bg ui-bar-d"\4

В зависимости от того, используете ли вы тип EOL для Windows или UNIX (то есть символ новой строки), вам может потребоваться изменить все \r\n на \n .


Более обобщенное регулярное выражение, которое заменяет только предложение ui-bar ui-bar-d :

(.*ui-bar ui-bar-d.*\r\n)(.*ui-bar ui-bar-d.*\r\n)(.*)ui-bar ui-bar-d(.*\r\n)(.*)ui-bar ui-bar-d(.*\r\n)

и заменить на

\1\2\3ui-bar bg ui-bar-d\4\5ui-bar bg ui-bar-d\6

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .