我有大量行包含此内容,例如此文本: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 不是唯一标记,那么您需要更好地理解您的数据,以便为其特征构建通用正则表达式。