我想使用正则表达式突出显示新编程语言的功能,但我在排除具有"导出"一词的函数时出现问题
好的行,我必须匹配的例子:
routine hello
ROUTINE hello
routine hello
ROUTINE hello(a:INTEGER)
routine hello (a : INTEGER)
routine hello (a : INTEGER , b: STRING)
Run Code Online (Sandbox Code Playgroud)
我不想匹配示例的行:
routine hello (a : INTEGER , b: STRING) exported
Run Code Online (Sandbox Code Playgroud)
我试过了
^[[:blank:]]*routine[[:blank:]]+([[:alnum:]_])+[[:blank:]]*([[:alnum:]_:,[:space:]]*)/^(?!.*exported)$/
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
以下表达式也可以解决问题:
^(?!.*exported).*$
|________________ line begin
|_______________ negative lookahead
|____________ any characters
|__________ your exclusion word
|_ any characters
|_ end of line
Run Code Online (Sandbox Code Playgroud)
您可以使用这样的表达式来匹配所有不包含单词“exported”的行:
(?m)^(?!.*\bexported\b).*$
Run Code Online (Sandbox Code Playgroud)