我想使用正则表达式突出显示新编程语言的功能但是我在排除具有“导出”一词的函数时遇到了问题 所以
我必须匹配示例的确定行:
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)$/
但它不起作用。
答案 0 :(得分:7)
以下表达式也可以解决问题:
^(?!.*exported).*$
|________________ line begin
|_______________ negative lookahead
|____________ any characters
|__________ your exclusion word
|_ any characters
|_ end of line
答案 1 :(得分:1)
您可以使用这样的表达式匹配所有不包含单词“exported”的行:
(?m)^(?!.*\bexported\b).*$