如何在 Notepad++ 正则表达式中使用九个以上的反向引用?

How do I use more than nine backreferences in Notepad++ regexp?

如果我在Notepad++中使用长正则表达式,即:

^([^ ]+) ([^ ]+) ([^ ]+) (\[.*?\]) (".*?") (".*?") (".*?") (".*?") (\d+) (\d+) (\d+)$

(这是为了将 Apache 日志行从 space 分隔为制表符分隔)

然后我无法成功使用超过九个反向引用进行替换,因为 </code> 生成第一个捕获组的内容加上文字“0”。</p> <p>我尝试使用 <code>,但结果相同。

你可以为此使用花括号:


作为参考,Notepad++ 使用 boost::regex,您可以在此处找到其替换模式文档:Boost-Extended Format String Syntax。这种替换模式允许在替换模式中使用更复杂的表达式(如条件和常见的 Perl 占位符)。

只需使用大括号:

这将确保第 10 个捕获组被引用,而不是第 1 个组后跟零。