如何仅替换选定列中的文本

如何仅替换选定列中的文本

当我选择列中的某些文本时,替换/选中将变为灰色。如何在 Notepad++ 中仅替换所选文本列中的文本?

答案1

这是 notepad++ 的一个令人讨厌的限制,但有几种方法可以解决这个问题。首先,如果您知道列限制,即要将第 4 列和第 10 列中的任何“dog”字替换为“cat”,请执行以下操作:

RE 搜索字符串:^(.{3})(.{0,3})dog(.{0,3})(.*)$

RE 替换字符串:\1\2cat\3\4

具体来说:

^          - Must match from the beginning of the line
(.{3})     - match any three characters from the line
(.{0,3})   - match 0-3 characters from the line
dog        - match "dog"
(.{0,3})   - match 0-3 characters from the line
(.*)       - match everything else
$          - up to the end of the line

这种方法的注意事项首先,请确保您已. matches \n取消选中,否则会弄乱。混合制表符和空格不起作用,因为正则表达式将制表符视为单个字符。

另一种适用于混合制表符和空格的解决方案列选择您要搜索的最后一列。然后输入文件中不存在的字符,例如“ |”或“ !”。

列选择您要搜索的第一列。执行与之前相同的操作(可以是相同的字符或不同的字符)。

现在,在这些边界内搜索您的文本。

RE 搜索字符串:|(.*)dog(.*)|

RE 替换字符串:|\1cat\2|

您想保留标记字符,因为您可能不会匹配文件中的每一行,并且您想在第二步中删除所有标记字符(使用列选择和删除,或使用另一个搜索/替换)。

答案2

我使用输入 Ctrl-r 时显示的“查找/替换”对话框。在“查找/替换”对话框中有一个字段用于输入列号。这允许您将“查找/替换”限制在文件中的这些列中。支持常规和正则表达式查找/替换。我找不到如何通过 Ctrl-h 对话框执行此查找/替换。

在此处输入图片描述
查找/替换对话框 (Ctrl-r)

相关内容