Замените каждую вторую пустую строку в Notepad ++ - PullRequest
0 голосов
/ 30 января 2020

Есть ли способ в Notepad ++ заменить все остальные пустые строки? Количество заполненных строк является случайным, и поэтому встречаются пустые строки.

Возможно ли это дифференцирование с неравномерным интервалом или оно выходит за рамки выражений в Блокноте?

РЕДАКТИРОВАТЬ : Я надеюсь заменить каждое второе вхождение пустой строки.

Например: -

    Bed
    Bee

    [BLANK A]

    Bible
    Bible
    Bird
    Bomb

    [BLANK B]

    Book
    Boss
    Bottle
    Bowl
    Box

    [BLANK A]

    Boy
    Brain
    Bridge
    Butterfly
    Button
    Cappuccino
    Car

    [BLANK B]

    Car-race
    Carpet
    Carrot
    Cave
    Chair

    [BLANK A]

    Chess Board
    Chief
    Child
    Chisel
    Chocolates

Где A и B должны быть заменены отдельно.

Ответы [ 2 ]

1 голос
/ 30 января 2020
  • Ctrl + H
  • Найти что: ((?:.+\R)+)(\R)(?:((?:.+\R)+)(\R))?
  • Заменить на: $1[BLANK A]$2(?3$3[BLANK B]$4)
  • CHECK Обтекание
  • CHECK Регулярное выражение
  • UNCHECK . matches newline
  • Заменить все

Объяснение:

(               # group 1 (will contain consecutive non blank lines)
  (?:           # non capture group
    .+          # 1 or more any character but newline
    \R          # any kind of linebreak (i.e. \r, \n, \r\n)
  )+            # end group, may appear 1 or more times
)               # end group 1
(\R)            # group 2, any kind of linebreak (i.e. first blank line)
(?:             # non capture group
  (             # group 3, same pattern as in group 1
    (?:
      .+
      \R
    )+
  )
  (\R)          # group 4, any kind of linebreak (i.e. second blank line)
)?              # end group, optional

Замена:

$1              # content of group 1 (non blank lines)
[BLANK A]       # replacement for first blank line
$2              # content of group 2, (a linebreak)
(?3             # if group 3 exists:
    $3              # content of group 3 (non blank lines)
    [BLANK B]       # replacement for second blank line
    $4              # content of group 4, (a linebreak)
)               # end condition

Снимок экрана (до):

enter image description here

Снимок экрана (после ):

enter image description here

0 голосов
/ 30 января 2020

Меню Search > Replace...

Найти что: ^(\s+)*\n

Заменить: (leave empty)

Установите переключатель на regular expression.

Это должно заменить все пустые строки независимо от количества пробелов.

...