VSCode 正则表达式查找和替换子匹配数学?
VSCode regex find & replace submatch math?
%s@{fileID: \(213[0-9]*\)@\='{fileID: '.(submatch(1)-1900)@
我在 vim 中使用这个正则表达式搜索和替换命令从每个匹配的 ID 中减去一个常量。
我可以在 VSCode 中查找正则表达式,但如何引用 submatch
进行数学运算和替换? submatch(1)
在 VSCode 中不起作用?
谢谢。
给定 (foobar)
的正则表达式,您可以使用
引用第一组,如果替换输入字段中有更多组,则依此类推。
用一个例子来补充本杰明的回答:
Find Carrots(With)Dip(Are)Yummy
Replace BananasMustardGross
Result BananasWithMustardAreGross
括号中的任何内容都可以是正则表达式。
再补充一个例子:
我正在替换 img html 标签中的 src 属性,但我只需要替换 src 并保留 img 声明和 src 属性之间的任何文本。
如图所示,我使用了查找+替换工具 (ctrl+h):
在我的例子中,$1 没有用,但 $0 对我来说很好用。
在这种情况下,我试图用正确的格式替换字符串以在 Laravel 中翻译它们,我希望这对其他人有用,因为我花了一些时间来整理它!
Search: (?<=<div>).*?(?=</div>)
Replace: {{ __('[=10=]') }}
Regex Replace String for Laravel Translation
另一个简单的例子:
Search: style="(.+?)"
Replace: css={css``}
对于使用 emotion/css 将 HTML 转换为 JSX 很有用!
对于初学者来说,接受的答案是正确的,但如果您对 VSC 或 Regex 都不那么熟悉,则答案会有点简洁。
所以,如果这是您第一次联系:
查找和修改文本,
在 "Find" 步骤中,您可以将正则表达式与 "capturing groups," 结合使用,例如I want to find (group1) and (group2)
,使用括号。这会找到与 I want to find group1 and group2
相同的文本,但不同之处在于您可以在下一步中引用 group1
和 group2
:
在"Replace"步骤中,可以通过</code>、<code>
等方式引用捕获组,所以可以将句子改为I found and having a picnic
,这将输出 I found group1 and group2 having a picnic.
备注:
()
内部或外部的任何内容都可以是正则表达式,而不只是一个字符串。
[=19=]
指整场比赛
%s@{fileID: \(213[0-9]*\)@\='{fileID: '.(submatch(1)-1900)@
我在 vim 中使用这个正则表达式搜索和替换命令从每个匹配的 ID 中减去一个常量。
我可以在 VSCode 中查找正则表达式,但如何引用 submatch
进行数学运算和替换? submatch(1)
在 VSCode 中不起作用?
谢谢。
给定 (foobar)
的正则表达式,您可以使用 引用第一组,如果替换输入字段中有更多组,则依此类推。
用一个例子来补充本杰明的回答:
Find Carrots(With)Dip(Are)Yummy
Replace BananasMustardGross
Result BananasWithMustardAreGross
括号中的任何内容都可以是正则表达式。
再补充一个例子:
我正在替换 img html 标签中的 src 属性,但我只需要替换 src 并保留 img 声明和 src 属性之间的任何文本。
如图所示,我使用了查找+替换工具 (ctrl+h):
在我的例子中,$1 没有用,但 $0 对我来说很好用。
在这种情况下,我试图用正确的格式替换字符串以在 Laravel 中翻译它们,我希望这对其他人有用,因为我花了一些时间来整理它!
Search: (?<=<div>).*?(?=</div>)
Replace: {{ __('[=10=]') }}
Regex Replace String for Laravel Translation
另一个简单的例子:
Search: style="(.+?)"
Replace: css={css``}
对于使用 emotion/css 将 HTML 转换为 JSX 很有用!
对于初学者来说,接受的答案是正确的,但如果您对 VSC 或 Regex 都不那么熟悉,则答案会有点简洁。
所以,如果这是您第一次联系:
查找和修改文本,
在 "Find" 步骤中,您可以将正则表达式与 "capturing groups," 结合使用,例如
I want to find (group1) and (group2)
,使用括号。这会找到与I want to find group1 and group2
相同的文本,但不同之处在于您可以在下一步中引用group1
和group2
:在"Replace"步骤中,可以通过
</code>、<code>
等方式引用捕获组,所以可以将句子改为I found and having a picnic
,这将输出I found group1 and group2 having a picnic.
备注:
()
内部或外部的任何内容都可以是正则表达式,而不只是一个字符串。[=19=]
指整场比赛