行开头和字符之间的正则表达式

时间:2013-10-02 00:42:29

标签: regex coffeescript syntax-highlighting vim

我根本没有正则表达式的经验。我的vim脚本需要一个简单的正则表达式来突出显示coffeescript函数或变量。

所以在下面的代码中

myvar = 12
square = (x) -> x * x

会突出显示myvarsquare

基本上在行的开头和和等号之间的任何东西。

以下是我在psuedocode

中表达的方式
x = line.between("beginning of line", "=")

if x.contains(" ", "+", "-", "etc.")
    return false
else
    return true

我不需要在所有情况下工作,只需要我可以使用的东西。

4 个答案:

答案 0 :(得分:2)

^[^=]\+\(=\)\@=

故障:

  1. ^匹配行的开头
  2. [^=]\+匹配一个或多个非=个字符(即第一个=之前的所有内容)
  3. \(=\)\@=寻找等号的正向前瞻(确保行中有一个)但不选择它

答案 1 :(得分:0)

^([^=]+)\=
我是怎么做的......

答案 2 :(得分:0)

^\w\+\s*=

Regular expression visualization

Debuggex Demo

  • ^行首
  • \w+至少一个单词字符(字母,数字,下划线)
  • \s* 0个或更多空格

答案 3 :(得分:0)

我会选择:

^[^=]\{-1,}\ze\s*=

表示:

  • ^:行首
  • [^=]\{-1,}:除=之外的任何字符,一次或多次,但尽可能少(这意味着,尽量不要使用尾随空格)
  • \ze:匹配结束,接下来是一个积极的先行断言(比如使用\(what follows\)\@=
  • \s*=:任意数量的空格和等号