如何编写正则表达式以从三线输出获取此表达式

时间:2019-05-13 07:27:22

标签: regex regex-negation regex-group

Netvisor OS Command Line Interface 5.1
Connected to Switch ugui-9kleaf1; nvOS Identifier:0xb00163e; Ver: 5.1.0-5010014593
Warning! ugui-9kleaf1's time is not in sync with the NTP Server.
CLI (network-admin@ugui-9kleaf1) > fabric-node-show format name no-show-headers

enter image description here

名称

ugui-9kleaf1
ugui-9kleaf2
Warning! ugui-9kleaf1's time is not in sync with the NTP Server.

这是我的表情

我尝试了以下正则表达式

r">.*[\r\n]?(.*)"

我得到的输出是

fabric-node-show format name, no-show-headers
ugui-9kleaf1
ugui-9kleaf2
Warning! ugui-9kleaf1's time is not in sync with the NTP Server.

我想要实际的输出。

ugui-9kleaf1
ugui-9kleaf2
Warning! ugui-9kleaf1's time is not in sync with the NTP Server.

上面的正则表达式正在捕获(命令+输出),但是我只需要实际输出。

Netvisor OS Command Line Interface 5.1
Connected to Switch ugui-9kleaf1; nvOS Identifier:0xb00163e; Ver: 5.1.0-5010014593
Warning! ugui-9kleaf1's time is not in sync with the NTP Server.
CLI (network-admin@ugui-9kleaf1) >
正则表达式中的

>符号将跳过正则表达式的横幅。

命令:fabric-node-show格式名称,no-show-headers
输出我得到的是: fabric-node-show format name, no-show-headers ugui-9kleaf1 ugui-9kleaf2 Warning! ugui-9kleaf1's time is not in sync with the NTP Server.

我想要的输出。

ugui-9kleaf1 ugui-9kleaf2 Warning! ugui-9kleaf1's time is not in sync with the NTP Server.

上面的正则表达式正在捕获(命令+输出),但是我只需要实际输出。

注意:命令可能会不时更改,因此我可以对值进行硬编码。所以我想要一个通用正则表达式,每次我只捕获实际输出。

1 个答案:

答案 0 :(得分:0)

  

我尝试了以下正则表达式

getCoefnExpo

差不多了。如您在图像中所见,匹配组1(绿色)包含所需输出的第一行,因此我们只需要将匹配组1扩展到末尾即可。为此,我们可以使用标志r">.*[\r\n]?(.*)" 点与换行符),但不能用于整个正则表达式(因为它一定不适用于第一个s),对于第1组,因此我们必须使用内联修饰符 .

(?s)

See online.