Как удалить определенные символы в блокноте ++ с помощью регулярных выражений? - PullRequest
0 голосов
/ 16 апреля 2019

Это данные, присутствующие в моем .txt файле

+919000009998    SMS    +919888888888
+919000009998    MMS    +91988 88888 88
+919000009998    MMS   abcd google
+919000009998    MMS    amazon

Я хочу конвертировать мой .txt вот так

919000009998    SMS    919888888888
919000009998    MMS    919888888888
919000009998    MMS   abcd google
919000009998    MMS    amazon

удаление символа +, а также пробелов, если они присутствуют в третьем столбце, только если это число, если это строка, никакая операция не выполняется

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

Ответы [ 2 ]

0 голосов
/ 16 апреля 2019

Весь предыдущий ответ будет отлично работать.

Однако я просто добавляю это на тот случай, если вам это нужно:

Если по какой-то причине у вас в третьем столбце были номера телефонов, разделенные пробелами (мне приходит в голову улица +919000009998 MMS street foo nº 123 4º-B), вы можете вместо этого использовать это регулярное выражение (оно будет присоединяться к номеру, пока начинается третий столбец) +):

Поиск: ^[+](\S+\s+\S+\s++)(?:([^+][^\n]*)|[+])|\G\s*(\d+)

Заменить на: \1\2\3

Это позволит избежать объединения 3 и 4 в моем предыдущем примере.

У вас есть демо здесь .

0 голосов
/ 16 апреля 2019
  • Ctrl + H
  • Найти что: \+|(?<=\d)\h+(?=\d)
  • Заменить на: LEAVE EMPTY
  • check Обтекание
  • check Регулярное выражение
  • Заменить все

Объяснение:

  \+            # + sign
|               # OR
  (?<=\d)       # positive lookbehind, make sure we have a digit before
  \h+           # 1 or more horizontal spaces
  (?=\d)        # positive lookahead, make sure we have a digit after

Снимок экрана:

enter image description here

...