我正在尋找可以與任何這些啟用提示匹配的通用正則運算式,
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
uj5u.com熱心網友回復:
#在禁止的之前使用否定的lookbehind )。
(.*?)RP/\d /RP[01]/CPU\d :. (?<!\))#\s*?
uj5u.com熱心網友回復:
您可以在冒號之后省略匹配的括號或換行符[^()\n]*,然后匹配直到 #
請注意,您可以省略,\s*?因為它是模式的最后一部分并且非貪婪,因此它不會匹配任何字符。
(.*?)\bRP/\d /RP[01]/CPU\d :[^()\n]*#
解釋
(.*?)捕獲組 1,匹配盡可能少的字符\bRP匹配 RP 前面有一個單詞邊界/\d /RP[01]/CPU\d :具體模式直到:[^()\n]*可選匹配除使用 否定字符類列出的任何字符#從字面上匹配
請參閱regex101 演示。
或者您可以在括號之間排除匹配的“配置”:
(.*?)\bRP/\d /RP[01]/CPU\d :(?!\w \(config\b[^()\n]*\)). #
查看另一個regex101 演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/468601.html
標籤:python-3.x 正则表达式
下一篇:如何使用正則運算式匹配子字串?
