我试图使用记事本++展平一系列行。 我有一组数字
{
{
99999 0
} nan "" "" Unknown Unknown -1 -1 nan nan 0 Unknown Unknown Unknown
}
我想成为的样子
{
{99999 0} nan "" "" Unknown Unknown -1 -1 nan nan 0 Unknown Unknown Unknown
}
我的正则表达式[{]n.*(d+).*(d+)n.*[}]
,替换字符串{$1 $2}
。 但是当我替换时,它最终从组 1 中提取最后一个数字,我得到
{
{9 0} nan "" "" Unknown Unknown -1 -1 nan nan 0 Unknown Unknown Unknown
}
如果我将正则表达式简化为(d+).*(d+)
它按预期工作,但粒度要精细得多。 记事本++ v7.4.2. 我的语法有问题吗?
您正在使用带有贪婪运算符的正则表达式,那么您的.*
正在捕获除最后一个数字之外的所有数字。
让它变得懒惰,它会起作用:
[{]n.*?(d+).*(d+)n.*[}]
^---- here
工作演示
@Federico找到了原因,但有一种更快的方法来做同样的事情:
{h*R+h*(d+)s+(d+)s*}
替换为:
{$1 $2}
现场演示