Cisco启用提示符的正则表达式



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

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]/CPUd+:.+#s*?

但是它也匹配配置提示,

https://regexr.com/6km9a

在禁止)#前使用负向后视

(.*?)RP/d+/RP[01]/CPUd+:.+(?<!))#s*?

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

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

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

  • (.*?)捕获组1,匹配尽可能少的字符
  • bRP匹配以字边界开头的RP
  • /d+/RP[01]/CPUd+:具体模式直到:
  • [^()n]*可选地匹配除使用反字符类
  • 列出的任何字符
  • #Match字面意思

查看regex101演示。


或者可以排除匹配的"config"括号之间:

(.*?)bRP/d+/RP[01]/CPUd+:(?!w+(configb[^()n]*)).+#

查看另一个regex101演示。

最新更新