搜索括号并在 gvim 中添加 \
search for brackets and add \ to it in gvim
我是 Vim 的新手。请帮助搜索并在字符串中添加\
。
例如,对于[1][sometest & numbers][7]
,输出应该是
[1]\[sometest & numbers\][7]
.
我可以用这个
更改左括号 [
:%s/\[[a-z]\&\[/\\[/g
但无法做到 ]
(右括号)。
这里的基本思想是将字符串分成几部分:
[1][sometest & numbers][7]
可拆分为:
[1]
[
sometest & numbers
]
[7]
然后用第 1 部分 + \[
+ 第 3 部分 + \]
+ 第 5 部分重新构建你的字符串。
这可以通过捕获组来完成。看看 :h \(
。
这应该为您指明正确的方向。玩得开心!
要匹配不属于 [<DIGITS_HERE>]
子字符串的任何 ]
或 [
,您可以使用
:%s/\v\[(\d+])@!|(\[\d+)@<!]/\&/g
这里,
\v
- 在非常神奇的模式下运行
\[(\d+])@!
- [
字符后面没有 1+ 个数字,然后是 ]
|
- 或
(\[\d+)@<!]
- ]
字符前面没有紧跟 [
和 1+ 位数字
/\&
- 将匹配项替换为 \
并找到匹配项
/g
- 全球。
我是 Vim 的新手。请帮助搜索并在字符串中添加\
。
例如,对于[1][sometest & numbers][7]
,输出应该是
[1]\[sometest & numbers\][7]
.
我可以用这个
更改左括号[
:%s/\[[a-z]\&\[/\\[/g
但无法做到 ]
(右括号)。
这里的基本思想是将字符串分成几部分:
[1][sometest & numbers][7]
可拆分为:
[1]
[
sometest & numbers
]
[7]
然后用第 1 部分 + \[
+ 第 3 部分 + \]
+ 第 5 部分重新构建你的字符串。
这可以通过捕获组来完成。看看 :h \(
。
这应该为您指明正确的方向。玩得开心!
要匹配不属于 [<DIGITS_HERE>]
子字符串的任何 ]
或 [
,您可以使用
:%s/\v\[(\d+])@!|(\[\d+)@<!]/\&/g
这里,
\v
- 在非常神奇的模式下运行\[(\d+])@!
-[
字符后面没有 1+ 个数字,然后是]
|
- 或(\[\d+)@<!]
-]
字符前面没有紧跟[
和 1+ 位数字/\&
- 将匹配项替换为\
并找到匹配项/g
- 全球。