提问人:jjk 提问时间:4/5/2017 更新时间:4/6/2017 访问量:2188
在 Vim 中用引号括起来的搜索字符串
Search string enclosed in quotes in Vim
问:
在 vim 中,我需要用引号搜索所有字符串,例如“foo”
人们看到这个正则表达式中的问题了吗?E486: 未找到模式 \'([^']*)'
:\/'([^']*)'
答:
3赞
sidyll
4/5/2017
#1
第一个问题是你对 find 的使用有点令人困惑。如果需要帮助,
要查找,请使用 .冒号不是必需的(这表明
命令模式)。如果您将查找用作范围(基本相同
thing,只是一个带有范围的空命令)您可以使用冒号,
但无论哪种方式,都不需要逃避第一个斜杠。/
/
另一个主要问题是默认情况下需要转义括号
如果你指的是一个捕获组。所有这些都取决于您的选择,强烈建议您阅读该主题的帮助(您可以这样做)。使用“vanilla”Vim 设置,
您需要的正则表达式看起来是实时的:'magic'
/magic
:h magic
/'\([^']*\)'
使用非常神奇的使能(通过使用原子),这可以简化
到您的原始设计:\v
/\v'([^']*)'
2赞
builder-7000
4/5/2017
#2
或者,您可以使用
\v'(\a+)'
此正则表达式的执行方式与你的正则表达式类似,除非遇到嵌套引号。在正文中:
The user's first 'answer'.
正则表达式将捕获,而原始正则表达式(由 sidyll 更正)将捕获 .\v'(\a+)'
answer
\v'([^']*)'
's first '
评论
/'([^']*)'