9

我想使用正则表达式来突出显示新编程语言的功能,但我在排除具有“导出”一词的功能时遇到问题,所以

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

routine hello
ROUTINE hello
   routine hello
   ROUTINE hello(a:INTEGER)
   routine hello (a   :  INTEGER)
   routine hello (a   :  INTEGER , b: STRING)

我不想匹配示例的行:

   routine hello (a   :  INTEGER , b: STRING) exported

我试过了

^[[:blank:]]*routine[[:blank:]]+([[:alnum:]_])+[[:blank:]]*([[:alnum:]_:,[:space:]]*)/^(?!.*exported)$/

但它不起作用。

4

2 回答 2

13

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

^(?!.*exported).*$

|________________   line begin 
 |_______________   negative lookahead
    |____________   any characters
      |__________   your exclusion word
               |_   any characters
                 |_ end of line
于 2014-12-16T09:14:59.517 回答
2

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

(?m)^(?!.*\bexported\b).*$
于 2013-05-15T11:00:04.310 回答