Regex 正则表达式查找/替换记事本++;

Regex 正则表达式查找/替换记事本++;,regex,notepad++,Regex,Notepad++,我有一个巨大的文本文件,上面有这样的行: 080012;Bovalino;RC;CAL;0964;89034;B098;9021;http://www.website-most.en/000/000/ 我只想摘录: 080012;***Bovalino***;***RC***;CAL;***0964***;***89034***;B098;9021;http://www.website-most.en/000/000/ 并删除所有其他文本 这可以通过正则表达式实现吗?您可以捕获要保留的内容,

我有一个巨大的文本文件,上面有这样的行:

080012;Bovalino;RC;CAL;0964;89034;B098;9021;http://www.website-most.en/000/000/
我只想摘录:

080012;***Bovalino***;***RC***;CAL;***0964***;***89034***;B098;9021;http://www.website-most.en/000/000/
并删除所有其他文本


这可以通过正则表达式实现吗?

您可以捕获要保留的内容,并在替换字符串中使用反向引用:

Find what: ^\d*;(\w*;\w*);\w*;(\d*;\d*).*
Replace with: \1;\2
并确保你做了而不是勾选
。匹配换行符
选项

使用记事本++6,您还可以使用
$1$2
用于替换(具有相同含义)

如果不同的字段可能包含各种字符,而不仅仅是数字和字母,那么这可能是您最好的选择:

Find what: ^[^;]*;([^;]*;[^;]*);[^;]*;([^;]*;[^;]*).*

将所有行替换为1美元$2:(@Luca确保你已经更新到Notepad++6,他们在那里更改了很多正则表达式的内容。否则,请尝试
\1;\2
一些没有的将被替换:/@Luca那么我猜它们有不同的格式。它们看起来像什么?例如,这不会被替换:052001;Abbadia San Salvatore;SI;TOS;0577;53021;A006;6722;