最近在使用一个比较小众的脚本语言,其中定义函数是这样定义的
; 带参数函数定义
@func1, arg1, arg2, arg3
; 不带参数函数定义
@func2
; 调用函数方式
CALL func1, arg1, arg2
func2(arg)
func3, arg
我现在需要用到正则表达式来为其创建一个语法高亮规则,但不知道怎么才能匹配到代码中的函数声明
@func1
@func2
以及使用函数时的
func1 ; 函数名
func2
func3
如果我这样写^@.+(?=,)
,匹配到的就只有带参数的@func1
而不带参数的函数定义,如@func2
,不会被匹配到。
如果想要正确地匹配到所有带参数或不带参数的@函数名
部分,需要怎么写正则表达式呢?
/@\w+((?:,\s*\w+)+)?/gm
###// js的正则 => ["@func2", "@add", "@sums"]
'@func2 sdf @add, a,b @sums 123'.match(/@\w+\b/g)
###
这样?
split(',')[0]