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然后是字面数字"?
记事本S&R正则表达式由Boost正则表达式库提供支持.
使用围绕ID的$n
大括号({}
)来实现明确的反向引用,因此,您可以${1}6
在此处使用它作为替换.
记事本+ +还支持BRE风格与反向引用开始\
(\1
,\2
等*可达9
).因此,当您\16
在替换模式中使用时,引擎将仅将其解析为反向引用1 +文字符号6
.您可以通过替换(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)
为\11
in 来检查它1234567890A
.而不是A
(第11组),你将获得11
结果.$11
替换会导致A
.
Notepad ++帮助提到了这些符号,但缺少细节:
$n
,${n}
,\n
返回什么匹配子表达式编号为n.负指数不属于.