如何使用正则表达式删除notepad ++中的特定字符?

时间:2019-04-16 09:47:54

标签: regex notepad++ programmers-notepad

这是我的.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 :(得分:-1)

  • Ctrl + H
  • 查找内容:\+|(?<=\d)\h+(?=\d)
  • 替换为:LEAVE EMPTY
  • 检查环绕
  • 检查正则表达式
  • 全部替换

说明:

  \+            # + 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

答案 1 :(得分:-1)

所有先前的答案都将完美地发挥作用。

但是,我只是在需要时添加它

如果由于某些原因,第三列上的非电话号码用空格分隔(我想到的街道是+919000009998 MMS street foo nº 123 4º-B),则可以改用此正则表达式(只要第三个列加入号码,列以+开头):

搜索:^[+](\S+\s+\S+\s++)(?:([^+][^\n]*)|[+])|\G\s*(\d+)

替换为:\1\2\3

这将避免在我之前的示例中加入34

您有一个演示here