2

我有一个很大的数据子集,如下所示:

MyApp.Whatever\app.config(115): More stuff here, but possibly with numbers or parenthesis...

我想使用 Notepad++ 创建一个替换过滤器,它可以识别和替换行号“(115):”并将其替换为一个制表符,后跟相同的数字。

我一直在尝试诸如(\(\d+\):)and之类的过滤器,但它们一直在输出(\(\[0-9]+\):)中返回整个值。\1

如何使用 Notepad++ 创建一个过滤器,该过滤器将成功替换(115):为制表符 + 115

4

3 回答 3

2

使用量词..(\(\d+?\):)在哪里?将防止它变得贪婪。此外,由于所有内容都在 () 中,因此它将全部分组并将其视为 \1 ..

如果它在 perl 中,我会说\((\d+?)\):应该只匹配内部部分。

编辑:

刚刚和我的同事谈过 - 他说s/\((\d+)\)/\t\1/,如果你需要在前面配置应用程序,你可以把它放在前面。

于 2013-05-29T20:06:31.670 回答
1

这应该可以满足您的需求

代替

\((\d+)\):

\t$1
于 2013-05-29T20:14:38.663 回答
1

替换(\(\d+\):)\t\1将保留括号和冒号,因为您已将它们包含在组中(外括号),我认为这就是“他们不断返回整个值”的意思。

不要逃避那些内括号,而是像其他答案所建议的那样逃避外括号: \((\d+)\):- 这表示匹配左括号,然后匹配并捕获一组数字,然后匹配右括号和冒号。将其替换为\t\1将删除不在捕获组中的括号和冒号。

于 2013-05-29T20:17:14.140 回答