搜索字符串用Vim中的引号括起来

时间:2017-04-04 16:20:51

标签: regex vim

在vim中,我需要在引号中搜索所有字符串,例如'富'

有人看到这个正则表达式中的问题吗? E486:未找到模式\'([^'] *)'

:\/'([^']*)'

Regex Tester

2 个答案:

答案 0 :(得分:1)

第一个问题是你使用find有点令人困惑。如果你想 要找到,请使用/。结肠不是必需的(表明 命令模式)。如果你使用find作为范围(基本相同 事情,/只是一个带有范围的空命令)你可以使用冒号, 但无论如何都没有必要逃避第一次斜线。

另一个主要问题是默认情况下需要对括号进行转义 如果你的意思是一个捕获组。所有这一切都取决于你的 'magic'选项阅读/magic主题的帮助(您可以执行此操作 强烈推荐:h magic)。随着“香草”Vim设置, 你需要的正则表达式看起来像这样:

/'\([^']*\)'

使用非常神奇的启用(通过使用\v原子),这可以简化 你原来的设计:

/\v'([^']*)'

答案 1 :(得分:1)

或者你可以使用

\v'(\a+)'

此正则表达式与您的相似,除非遇到嵌套引号。在文中:

The user's first 'answer'.

正则表达式\v'(\a+)'将捕获answer,而原始正则表达式(由sidyll更正)\v'([^']*)'将捕获's first '