gpt4 book ai didi

regex - 如何在 Notepad++ 替换中分隔正则表达式组号?

转载 作者:行者123 更新时间:2023-12-05 00:54:49 24 4
gpt4 key购买 nike

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

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

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

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

我尝试使用 $1\6制作 6文字,它给了我第 1 组,但 ​​ \6 是空白的- 即结果只是 A . $1\\6给了我 A\6 .

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

最佳答案

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

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

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

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

$n, ${n}, \n
Returns what matched the subexpression numbered n. Negative indices are not alowed.

关于regex - 如何在 Notepad++ 替换中分隔正则表达式组号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39282477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com