当字符串存在或字符串不存在时,我正在尝试匹配 在以下内容中:
username test privilege 10 secret 0
username cisc privilege 15 password secret
username cisco privilege 10 secret
我需要找到任何“用户名cisco”实例并匹配,如果根本不存在“用户名”则匹配。这是因为我们的路由器/交换机配置文件要么默认使用cisco,要么根本没有用户名。
到目前为止,我已经尝试过:
(?s)u\w{7} cisco|^((?!u\w{7}).)*$
(?s)(u\w{7}) cisco|^[^username]$
(?s)(u\w{7}) cisco|^[^\1]$
“|”之后的正则表达式评估为“不匹配”。如果不存在“用户名”,我需要它匹配(在我的情况下匹配将是失败)。我觉得这是一种外观或外观修复,但我无法正确理解语法。
提前致谢
答案 0 :(得分:0)
您可以将此正则表达式用于替换和否定前瞻:
/^(?!.*username).+|username cisco/m
RegEx分手:
^
- 开始(?!.*username)>_
是一个负面预测断言失败
username
,因此匹配没有username
的行。|
- 或username cisco
- 匹配文字文字username cisco