在每一行的文本中间添加一个字母,Notepad++

在每一行的文本中间添加一个字母,Notepad++

我有大量行包含此内容,例如此文本:OU111_DI_Z006_1

注意,有些字符在每一行都是不同的,用 @ 表示。像这样:OU@@@_@@_Z0@@__@

如何使用搜索替换功能在 Z 之前添加字符 X?

像这样:OU111_DI_XZ006_1

答案1

更换窗口标记正则表达式

找什么: (OU..._.._)(Z0.._.)

用。。。来代替: \1X\2

http://docs.notepad-plus-plus.org/index.php/Regular_Expressions

答案2

这取决于您的数据。字符“OU”和“Z0”是否是唯一表示每个子字符串开头的字符……或者这些字符可以随机显示(例如 OU222_Z0_Z055..)?

如果它们是唯一的,并且除了作为每个子字符串的开头之外不可能出现在任何地方,那么一个简单的正则表达式就可以非常通用地工作:

Find:  (OU.*)(Z0.*)
Replace:  \1X\2

在这里,您将以 OU 开头的所有内容 (.*) 分组为“\1”。并且,将以 Z0 开头的所有内容分组为“\2”。(括号创建了组。)

替换字符串只是在第 1 组和第 2 组之间放置一个 X。

注意:这与 marbel82 的答案非常相似,只不过这更通用,因为您没有指定必须存在多少个下划线和字符。

..

但是,如果 OU 和 Z0 不是唯一标记,那么您需要更好地理解您的数据,以便为其特征构建通用正则表达式。

相关内容