我想使用正则表达式突出显示一种新编程语言的功能,但是在排除带有“已导出”一词的功能时遇到了问题
所以
好的行,我必须匹配示例:
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)$/
但这是行不通的。
最佳答案
以下表达式也可以解决问题:
^(?!.*exported).*$
|________________ line begin
|_______________ negative lookahead
|____________ any characters
|__________ your exclusion word
|_ any characters
|_ end of line
关于正则表达式匹配没有特定单词的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16563112/