您如何将文本中间的单个字符替换为重复项?

时间:2019-07-09 14:40:04

标签: regex notepad++

最近,我一直在四处搜寻以找出如何在Notepad ++中使用正则表达式,因为我听说它对格式化内容很有用,而无需逐行查看,并且完全浪费了您替换某些内容的时间。

我正在尝试替换在每行中找到的单个字符(重复项除外)

我已经在线尝试了许多方法,在寻找所需内容之前没有在线答案

test1:_|TEST:-TEST.|
test2:_|TEST:-TEST.|
test3:_|TEST:-TEST.|

如测试代码所示,有两个冒号;我正在尝试将第一个冒号替换为;和第二个;我执行正则表达式的结果应等于:

test1;_|TEST:-TEST.|
test2;_|TEST:-TEST.|
test3;_|TEST:-TEST.|

3 个答案:

答案 0 :(得分:1)

就这样完成

找到(?m)^[^:\r\n]*\K:
替换;

https://regex101.com/r/rT1vG9/1

答案 1 :(得分:0)

我猜可能是这个表情

(\w+)\s*(?::)(\s*_\s*\|\s*\w+\s*:\s*-\w+\.\|)
替换为$1;$2

可能有效。

DEMO 1

或者边界更少,该表达式:

([^:]+):(.*)

用相同的替换。

DEMO 2

答案 2 :(得分:0)

  • Ctrl + H
  • 查找内容:^.+?\K:
  • 替换为:;
  • 检查 环绕
  • 检查 正则表达式
  • 取消检查 . matches newline
  • 全部替换

说明:

^           # beginning of line
  .+?       # 1 or more any character but newline, not greedy
  \K        # forget all we have seen until this position
  :         # colon

屏幕截图(之前):

enter image description here

屏幕截图(之后):

enter image description here