gpt4 book ai didi

regex - VSCode Regex 在文件中查找/替换 : can't get a numbered capturing group followed by numbers to work out

转载 作者:行者123 更新时间:2023-12-05 00:45:50 26 4
gpt4 key购买 nike

我需要更换这个:

fixed variable 123

用这个:

fixed variable 234

在 VSCode 中这匹配得很好:

fixed(.*)123

如果后面有数字,我找不到任何方法让它将捕获放在输出中:

fixed$1234 

fixed${1}234

但是查找替换窗口看起来像这样:

enter image description here

我读到 VSCode 使用 rust 风格的 rexes.. Here表示 ${1}234 应该可以工作,但 VSCode 只是将它放在输出中..

尝试以 according to here 的样式命名捕获

fixed(?P<n>.*)123     //"invalid regular expression" error

VSCode 似乎无法理解 ${1}: enter image description here


ps;我很感激我可以在人为的例子中破解它

FIND: fixed (.*) 123
REPL: fixed $1 234

这在 vscode 中确实有效:

enter image description here

但并非我的所有数据在数字前始终具有相同的字符

最佳答案

经过我自己和@Wiktor 的大量调查后,我们发现了解决 vscode 搜索(即跨文件查找)中这个明显错误的解决方法,并在特定情况下替换功能,其中替换将具有单个捕获组,后跟数字,喜欢

$1234,其中意图是替换为捕获组 1 $1 后跟 234 或任何数字。但是 $1234 是实际不需要的替换输出。

[这适用于当前文件的查找/替换小部件,但不适用于跨文件的查找/搜索。]

有(至少)两种解决方法。使用两个连续的组,如 $1$2234 和 $1$`234 一样正常工作(或以 $backtick 开头)。

因此,您可以像 (.*?)()(\d{3}) 中那样创建一个假捕获组,其中捕获组 2 中没有任何内容,只是为了获得 2 个连续的捕获组替换或

使用您的初始搜索正则表达式 (.*?)(\d{3}),然后在“真实”捕获组 $1 之前或之后使用 $`。

OP 已提交问题 https://github.com/microsoft/vscode/issues/102221


奇怪的是,我刚刚发现用 $11 之类的单个数字替换可以正常工作,但是一旦添加两个或更多,它就会失败,所以 $112 失败。

关于regex - VSCode Regex 在文件中查找/替换 : can't get a numbered capturing group followed by numbers to work out,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62850149/

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