Regex 更换分离器

Regex 更换分离器,regex,notepad++,Regex,Notepad++,只有当位于名称和第二名称之间时,才可以使用记事本++在每行上用空格替换最后一个分隔符字符吗 我有: number|surname|name number|surname|name|secondname 我需要: number|surname|name number|surname|name secondname 根据您的评论,您可以使用这个正则表达式 ((?:\w+\|){2})(\w+)\|(\w+) 并替换为$1$2$3 根据您的评论,您可以使用此正则表达式 ((?:\w+\|){2}

只有当
位于
名称
第二名称
之间时,才可以使用记事本++在每行上用空格替换最后一个分隔符
字符吗

我有:

number|surname|name
number|surname|name|secondname
我需要:

number|surname|name
number|surname|name secondname

根据您的评论,您可以使用这个正则表达式

((?:\w+\|){2})(\w+)\|(\w+)
并替换为
$1$2$3


根据您的评论,您可以使用此正则表达式

((?:\w+\|){2})(\w+)\|(\w+)
并替换为
$1$2$3


免责声明:我假设您有一个需要“修复”的管道分隔文件,以便有正确数量的列,并且有3列,问题是第3列有时可能包含管道

为此,您可以使用正则表达式:

(?:^(?:[^|\n]*\|){2}|(?!^)\G)[^|\n]*\K\|
换成空间


免责声明:我假设您有一个需要“修复”的管道分隔文件,以便有正确数量的列,并且有3列,问题是第3列有时可能包含管道

为此,您可以使用正则表达式:

(?:^(?:[^|\n]*\|){2}|(?!^)\G)[^|\n]*\K\|
用空间代替

尝试此操作。替换为
$1$2$3$4
。请参阅演示

尝试此操作。替换为
$1$2$3$4
。请参阅演示


为什么第一行的最后一个分隔符没有被替换?因为它可以是surename | name和surename | name | secondname,我需要替换,那么只有surename | name | secondname不是surename | name为什么第一行的最后一个分隔符没有被替换?因为它可以是surename | name和surename | name | secondname,我只需要替换surename | name | secondname不代表surename | name谢谢你非常有帮助:)@VadimasSizikovas很高兴它有帮助:)谢谢你非常有帮助:)@VadimasSizikovas很高兴它有帮助:)