当人们尝试从一行的开头删除一些字符并且在第一次替换后可以再次找到 anchor 定的样式时,它将再次被删除。
对于给定输入012345
,搜索模式^.
和空替换的一个非常简单的示例,Notepad ++在使用replace all时将删除整行。这很可能是由于以下情况:光标在第一次替换之后仍位于行的开头,因此再次与^
anchor 匹配。
如何确保仅删除实际的第一个字符(在我的情况下,预期输出为12345
)?
您可以在答案中看到我的解决方法,但是也许还有另一个不错的技巧可以实现。
最佳答案
可以匹配该行的其余部分,将匹配项捕获到一个组中,然后使用该组作为替换。问题中的模式可以调整为^.(.*)
,并替换为$1
。
这将迫使光标在字符串中向前移动,因此^
anchor 不再匹配。