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

Boh*_*ian 4 regex replace notepad++ regex-group

我想指定一个捕获的组,然后在替换术语中指定一个文字数字,但是该字面数字被解释为组编号的一部分.

鉴于这个(人为的)例子:

Input text: A5
Find: (.)(.)
Replace: $16
Expected result: A6
Actual result: <blank>
Run Code Online (Sandbox Code Playgroud)

实验表明,这$16被解释为"第16组".

我试着使用$1\6使6文字,这给了我1组,但空白的\6-即换来的只是A.$1\\6给了我A\6.

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

Wik*_*żew 5

记事本S&R正则表达式由Boost正则表达式库提供支持.

使用围绕ID的$n大括号({})来实现明确的反向引用,因此,您可以${1}6在此处使用它作为替换.

记事本+ +还支持BRE风格与反向引用开始\(\1,\2等*可达9).因此,当您\16在替换模式中使用时,引擎将仅将其解析为反向引用1 +文字符号6.您可以通过替换(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)\11in 来检查它1234567890A.而不是A(第11组),你将获得11结果.$11替换会导致A.

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

$n,${n},\n
返回什么匹配子表达式编号为n.负指数不属于.