用regex替换list的第n个元素


0

我有一个文件,其中包含以分号分隔的字符串列表,如下所示:

aaaa;bbb;ccccccc;dd;  
eeee;fff;ggggggg;hh;  
iiii;jjj;kkkkkkk;ll;

我正在寻找一个正则表达式来替换每一行的第n个元素(使用Notepad ++ v6.8.3,正则表达式引擎主要遵循Perl语法)。我相信这个表达方式

^([^\;]*\;){n}([^;]*)

n是一个数字将捕获所有内容,直到第n个分号。我需要更换它才能仅更改每一行的第n个条目?

举个例子:如果n = 3,我想要一个正则表达式和替换来获得

aaaa;bbb;xxxxxxx;dd;  
eeee;fff;xxxxxxx;hh;  
iiii;jjj;xxxxxxx;ll;

Answers:


0

搜索:

^((?:[^;]*;){2})([^;]*;)([^;]*)

更换:

\1xxxxxx;\3

我改变了什么:

  • 使量化非捕获组( ?: 并在其周围添加了一个捕获组,以便立即捕获所有内容
  • nn-1 并复制了内部组 ([^;]*;) 抓住n 分开组
  • 删除了一些多余的逃脱
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.