Как убрать текст между цифрами в блокноте ++ - PullRequest
0 голосов
/ 11 января 2020

У меня есть тексты, такие как

3.6. Sam
3.7. Willy

4.1. drake
4.2. nadeem

Мне нужен вывод, как

3-6 Sam
3-7 Willy

4-1 drake
4-2 nadeem

Я попытался заменить \d{1}.\d{1}. на \d{1}-\d{1} и позже $1-$2

Но я не могу сохранить номер. Может ли кто-нибудь помочь мне с этим

Ответы [ 3 ]

3 голосов
/ 11 января 2020
  • Ctrl + H
  • Найти что: ^(\d+)\.(\d+)\.
  • Заменить на: $1-$2
  • CHECK Обтекание
  • CHECK Регулярное выражение
  • UNCHECK . matches newline
  • Заменить все

Объяснение:

^       # beginning of line
  (\d+) # group 1, 1 or more digits
  \.    # a dot
  (\d+) # group 2, 1 or more digits
  \.    # a dot

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

enter image description here

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

enter image description here

3 голосов
/ 11 января 2020

Используйте следующее регулярное выражение:

(\d)\.(\d)\.

и замените на:

$1-$2

Вы ошиблись, потому что вам нужно захватывать группы вокруг чисел. (\d) вместо просто \d.

И вам не нужно указывать {1}, если он всего один, вы можете оставить это. Также вы ставите ., но он представляет любой символ, а не только точку / полный останов, для этого вы должны экранировать его с sla sh как \..

1 голос
/ 11 января 2020

Другой вариант - использовать \K и использовать одну группу для замены.

Найти что:

\d\K\.(\d)\.

Заменить на:

-$1

Пояснение

  • \d Соответствует одному ди git (используйте \d+ для совпадения с 1 или более цифрами)
  • \K Сброс начальная точка сообщенного совпадения (забудьте, что было найдено)
  • \.(\d)\. Захватите ди git в группе 1 между совпадением точки слева и справа

Regex demo

Если все ваши совпадения находятся в начале строки, вы добавляете ^ к шаблону.

...