我根本没有正则表达式的经验。我的vim脚本需要一个简单的正则表达式来突出显示coffeescript函数或变量。
所以在下面的代码中
myvar = 12
square = (x) -> x * x
会突出显示myvar
和square
基本上在行的开头和和等号之间的任何东西。
以下是我在psuedocode
中表达的方式x = line.between("beginning of line", "=")
if x.contains(" ", "+", "-", "etc.")
return false
else
return true
我不需要在所有情况下工作,只需要我可以使用的东西。
答案 0 :(得分:2)
^[^=]\+\(=\)\@=
故障:
^
匹配行的开头[^=]\+
匹配一个或多个非=
个字符(即第一个=
之前的所有内容)\(=\)\@=
寻找等号的正向前瞻(确保行中有一个)但不选择它答案 1 :(得分:0)
^([^=]+)\=
我是怎么做的......
答案 2 :(得分:0)
答案 3 :(得分:0)
我会选择:
^[^=]\{-1,}\ze\s*=
表示:
^
:行首[^=]\{-1,}
:除=
之外的任何字符,一次或多次,但尽可能少(这意味着,尽量不要使用尾随空格)\ze
:匹配结束,接下来是一个积极的先行断言(比如使用\(what follows\)\@=
)\s*=
:任意数量的空格和等号