Cisco 启用提示的正则表达式

Regular expression for Cisco enable prompt

我正在寻找可以匹配任何这些启用提示的通用正则表达式,

RP/0/RP0/CPU0:ios#
RP/0/RP0/CPU0:R1#
RP/0/RP0/CPU0:CX1-SF#
RP/0/RP0/CPU0:~#
RP/0/RP0/CPU0:cisco#

并且不应与这些配置提示匹配,

RP/0/RP0/CPU0:ios(config)#
RP/0/RP0/CPU0:R1(config)#
RP/0/RP0/CPU0:R1(config-if)#

我是从这样开始的,

(.*?)RP/\d+/RP[01]/CPU\d+:.+#\s*?

但它也与配置提示相匹配,

https://regexr.com/6km9a

在禁止 ).

# 之前使用负面回顾
(.*?)RP/\d+/RP[01]/CPU\d+:.+(?<!\))#\s*?

您可以使用 [^()\n]* 省略匹配的括号或冒号后的换行符,然后匹配直到 #

请注意,您可以省略 \s*?,因为它是模式的最后一部分并且是非贪婪的,因此它不会匹配任何字符。

(.*?)\bRP/\d+/RP[01]/CPU\d+:[^()\n]*#

说明

  • (.*?) 捕获组 1,匹配尽可能少的字符
  • \bRP 匹配前面有单词边界的 RP
  • /\d+/RP[01]/CPU\d+:具体模式到:
  • [^()\n]* 可选地匹配除使用 negated character class
  • 列出的任何字符
  • #字面匹配

看到一个regex101 demo


或者您可以在括号之间排除匹配的“config”:

(.*?)\bRP/\d+/RP[01]/CPU\d+:(?!\w+\(config\b[^()\n]*\)).+#

再看一个regex101 demo