我有一个旧应用程序,该应用程序使用Extended POSIX正则表达式来评估返回码,以便做出一些决定。
返回码示例:
RETCODE = 0 SUCCESS
RETCODE = 3007 ERR3007
RETCODE = 3001 ERR3001
RETCODE = 13007 ERR13007
RETCODE = 3 ERR3
RETCODE = 1 ERR1
我写了一个正则表达式,当返回码为0或3007时考虑成功:“。* RETCODE =(0 | 3007)。*”
现在,当返回码是其他内容时,我需要另一个正则表达式来考虑FAILURE。这意味着返回码也不是0 NOR 3007。
注意1:我的应用程序仅将“ ^”视为否定字符。
注意2:我使用命令“ egrep”测试表达式
在这种情况下,您能帮我吗?
谢谢。
伊凡。
答案 0 :(得分:0)
POSIX扩展的正则表达式不支持否定的超前断言。但是,常规语言的补语本身又是常规的,因此您可以为此编写一个正则表达式,即使您不打算精确否定匹配项,也确实很笨拙:
RETCODE = ([124-9][0-9]*|3|30|3[1-9][0-9]*|30[1-9][0-9]*|300|300[01-689][0-9]*|3007[0-9]+)[ ]