Cai*_*ard 2 regex visual-studio-code find-replace
我需要更换这个:
fixed variable 123
Run Code Online (Sandbox Code Playgroud)
有了这个:
fixed variable 234
Run Code Online (Sandbox Code Playgroud)
在 VSCode 中,这匹配得很好:
fixed(.*)123
Run Code Online (Sandbox Code Playgroud)
如果一个数字如下,我找不到任何方法让它把捕获放在输出中:
fixed$1234
fixed${1}234
Run Code Online (Sandbox Code Playgroud)
但是查找替换窗口看起来像这样:
我读到 VSCode 使用铁锈味的雷克斯 ..这里表示${1}234应该可以工作,但 VSCode 只是将它放在输出中..
根据此处的样式尝试命名捕获
fixed(?P<n>.*)123 //"invalid regular expression" error
Run Code Online (Sandbox Code Playgroud)
ps; 我很感激我可以在人为的例子中破解它
FIND: fixed (.*) 123
REPL: fixed $1 234
Run Code Online (Sandbox Code Playgroud)
这在 vscode 中确实有效:
但并非我的所有数据在数字之前都具有相同的字符
经过我自己和@Wiktor 的大量调查,我们发现了解决 vscode 搜索(也就是跨文件查找)中这个明显错误的解决方法,并在特定情况下替换功能,其中替换将具有单个捕获组,后跟数字,例如
$1234其目的是用捕获组 1后跟或 任何数字替换。但是是实际不需要的替换输出。$1234$1234
[这适用于当前文件的查找/替换小部件,但不适用于跨文件的查找/搜索。]
有(至少)两种解决方法。使用两个连续的组,就像$1$2234$1$`234一样正常工作(或在 $backtick 之前)。
因此,您可以创建一个假捕获组,(.*?)()(\d{3})因为捕获组 2 中没有任何内容,只是为了在替换中获得 2 个连续的捕获组或
使用您的初始搜索正则表达式(.*?)(\d{3}),然后在您的“真实”捕获组 $1 之前或之后使用 $`。
OP 已提交问题https://github.com/microsoft/vscode/issues/102221
奇怪的是,我刚刚发现用一个数字替换 like$11工作正常,但是一旦添加两个或更多它就会失败,所以$112失败了。
| 归档时间: |
|
| 查看次数: |
860 次 |
| 最近记录: |