Notepad ++ Regex - ^锚和重复模式的问题

时间:2016-10-13 09:38:44

标签: regex replace notepad++

当一个人试图从一行的开头删除一些字符并且在第一次替换后再次找到锚定的图案时,它将再次被删除。

对于给定输入012345,搜索模式^.和空替换的非常简单的示例,当使用替换所有时,Notepad ++将删除整行。这很可能是由于这样的情况,即在第一次替换后光标仍然在行的开头,因此再次与^锚点匹配。

如何确保仅删除实际的第一个字符(在我的情况下,预期的输出将是12345)?

你可以在我的回答中看到我的解决方法,但也许有另一个很好的技巧来实现它。

2 个答案:

答案 0 :(得分:3)

可以匹配线的其余部分,将匹配捕获到一个组中,然后将此组用作替换。问题中的模式可以调整为^.(.*),并替换为$1

这将强制光标在字符串中向前移动,因此^锚点无法再次匹配。

答案 1 :(得分:1)

另一种解决方法可能是找到:

^.(.)?

并将其替换为:

\1

我确定这是错误报告的主题,但截至目前无法找到它。在N ++中:

  • 主播是错误的
  

enter image description here

  • 通过替换所有功能,替换应该不是重新匹配的主题。但是,当替换字符串是不可见/零长度字符时,它们就是。
  

enter image description here

照顾好他们。