Regex изолировать и заменить один пробел в строке - PullRequest
0 голосов
/ 17 марта 2020

Я новичок в использовании Regex, и я в основном хочу использовать его в Notepad ++, чтобы выполнять массовую грамматику и исправления знаков препинания в табличных данных.

Из этой строки Bonanza 1023-5 G мне нужно удалить пробел между 5 и G. Я не могу понять, как изолировать, а затем удалить этот единственный пробел между ними. Я нашел около десятка различных способов изолировать 5 G, но я не могу понять, как изолировать только этот пробел, а не пробелы до или после него в строке. Это то, что я сейчас использую для выделения 5 G:

([0-9]+([s/\s+])+[A-Z])

Ответы [ 2 ]

1 голос
/ 17 марта 2020

Вы можете использовать \h+ для сопоставления 1 или более горизонтальных пробельных символов и использовать \K для очистки буфера соответствия.

\d-\d+\K\h+(?=[A-Z])

При замене используйте пустую строку.

Regex demo

Или используйте 2 группы захвата и используйте группы для замены, используя $1$2

(\d-\d+)\h+([A-Z])

Regex demo

0 голосов
/ 17 марта 2020

Может быть ...

Ctrl + H, выберите опцию режима регулярных выражений. Найдите это:

(\d+-\d) (\w)

Замените на:

$1$2

Вы должны найти бит прямо до пробела, а затем найти бит после пробела. Эти две части должны быть захвачены. Затем замените на $ 1 $ 2 вместе - ударь рядом друг с другом. Если вместо этого вы замените на ...

$1  $2

, у вас будет два пробела вместо одного (например).

...