正则表达式匹配没有特定单词的行

Ded*_*nan 7 regex

我想使用正则表达式突出显示新编程语言的功能,但我在排除具有"导出"一词的函数时出现问题

好的行,我必须匹配的例子:

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)

但它不起作用.

DrM*_*use 9

以下表达式也可以解决问题:

^(?!.*exported).*$

|________________   line begin 
 |_______________   negative lookahead
    |____________   any characters
      |__________   your exclusion word
               |_   any characters
                 |_ end of line
Run Code Online (Sandbox Code Playgroud)


Qta*_*tax 3

您可以使用这样的表达式来匹配所有不包含单词“exported”的行:

(?m)^(?!.*\bexported\b).*$
Run Code Online (Sandbox Code Playgroud)