Notepad ++ zastępuje co 3 i 4 iterację


1

Używam notatnika ++ Zastanawiam się, czy można zastąpić co 3 i 4 iterację wierszami HTML.

Oryginalny kod wygląda następująco:

<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"

powracające ...

Muszę zmieniać co drugi blok dwóch, aby wyglądać tak.

<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"

powracające ...

Czy są jakieś wyrażenia regularne, które to zrobią?

Odpowiedzi:


2

Zakładam, że twój HTML wygląda

<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...

i załóżmy, że chcesz zachować tę ... and something else ...część.

W polu wyszukiwania spróbuj

(<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)

Zamienić

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

W zależności od tego, czy używasz EOL typu Windows, czy UNIX (tj. Znak nowej linii), może być konieczna zmiana wszystkich \r\nna \n.


Bardziej ogólne wyrażenie regularne, które zastępuje tylko ui-bar ui-bar-dklauzulę:

(.*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)

i zamień na

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

Naprawdę doceniam odpowiedź, wygląda na to, czego dokładnie potrzebuję, chociaż nie mogę zmusić jej do pracy dla miłości ani pieniędzy, wypróbowałem kilka wariantów twojej sugestii, ale bezskutecznie. Po próbie zastąpienia pojawia się błąd „Nie mogę znaleźć tekstu”. Używam Korzystam z systemu Windows i masz rację mówiąc, że HTML to coś więcej. Przykład pełnej linii wygląda następująco<div class="ui-block-a"><div class="ui-bar ui-bar-d" style="">Superuser</div></div>
Farang

Zatem <div class="ui-block-a">w każdym wierszu przed wzorem znajduje się dodatkowy ciąg ( ). W takim przypadku musisz zmodyfikować wzorzec wyszukiwania; Poprawiłem swoją odpowiedź, aby wzorzec wyszukiwania był bardziej ogólny.
Kenneth L

Wielkie dzięki, to odpowiada na moje pytanie i pomaga mi zrozumieć, jak działa składnia wyrażeń regularnych.
Farang
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.