匹配string1但如果匹配string2则丢弃

时间:2013-12-11 09:34:51

标签: regex

您好我正在尝试创建一个匹配用户名的正则表达式,但如果匹配特定名称则忽略,在这种情况下为STOPPED。 所以我想匹配所有用户名excpet STOPPED。

2013-03-09 04:38:13,311 radius-acct-pl[23279] INFO: Add 10.2.2.73 to 'By User-Name/alberto'

2013-03-09 04:38:50,963 radius-acct-pl[23279] INFO: Add 10.1.28.38 to 'By User-Name/STOPPED'

到目前为止我已完成\bUser-Name\b\/([a-zA-Z0-9\\\._]+) 但这匹配STOPPED也

由于

2 个答案:

答案 0 :(得分:1)

您可以使用前瞻:

\bUser-Name\b(?!.*?STOPPED)

此处(?!.*?STOPPED)为负面预测。换句话说,\bUser-Name\b匹配仅在未跟随STOPPED时才会成功。

答案 1 :(得分:1)

尝试:

(?i)(?<=/)(?!stopped)[a-z]+

获取/之后的用户名,除非其stopped无论如何。