匹配角色背后的任何单词(Vim)

时间:2015-02-04 05:12:26

标签: regex vim

现在我有这个:

/\w\+\(->\)\@=

匹配->

后面的单词
matchedWord->

如何更改该正则表达式,以便它匹配(左侧)->后面的任何单词,无论是否有空格或其他字符?

示例:

matchedWord = ->

matchedWord = (x) ->

3 个答案:

答案 0 :(得分:2)

取决于背后的理解 - >

如果这是之后的,那么你想尝试

->\s*\zs\w\+

表达式首先搜索文字->,后跟任意数字(*)的空格(\s)。然后,以下\zs告诉vim实际开始匹配。 \w\+匹配一个字。

从您的编辑中,我认为你的意思是之后意味着前面,所以你想尝试

 \w\+\ze\s*->

几乎与上述逻辑相同,但我使用\ze(结束匹配)而不是\zs

编辑所以,您澄清了要匹配一行中的第一个单词。在这种情况下,你想要

\w\+\ze.*->

答案 1 :(得分:1)

您可以使用匹配0个或更多空白字符的\s*

答案 2 :(得分:1)

.*?\(->\)\@=

您可以使用此功能。.*?将匹配->之前的所有内容。