如何在notepad++替换中划分正则表达式组号



我想指定一个捕获的组,然后在替换项中指定一个文字数字,但是文字数字被解释为组号的一部分。

给定这个(人为的)示例:

Input text: A5
Find: (.)(.)
Replace: $16
Expected result: A6
Actual result: <blank>

实验表明$16被解释为"第16组"。

我尝试使用$16使6文字,这给了我第1组,但6空白-即结果只是A$1\6给了我A6

一般的问题是,"我如何指定组1然后是一个文字数字"?

Notepad S&R regex由Boost regex库提供支持。

明确的$n反向引用是用大括号({})在ID周围实现的,因此,您可以在这里使用${1}6作为替代。

notepad++还支持以开头的BRE风格反向引用(1, 2等*直到9)。因此,当您在替换模式中使用16时,引擎只会将其解析为Backreference 1 +文字符号6。您可以通过将1234567890A中的(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)替换为11来检查。而不是A(第11组),你将得到11作为结果。替换$11会产生A

notepad++帮助提到了这些符号,但缺少细节:

$n ${n} n
返回与编号为n的子表达式匹配的内容。不允许使用负索引。

最新更新