display命令中的正则表达式正则表达式 正则表达式(regularexpression)是一种模式匹配工具,用户根据一定的规则构建匹配模式,然后将匹配模式与目标对象进行匹配。正则表达式格式上是由1256个普通字符和特殊字符组成的字符串。普通字符普通字符匹配的对象是普通字符本身。包括所有的大写和小写字母、数字、下划线、标点符号以及一些特殊符号。例如:a匹配abc中的a,10匹配10。113。25。155中的10,匹配xxxxxx。com中的。特殊字符为帮助用户灵活地构建匹配模式,正则表达式提供了一些具有特殊含义的专用字符,也称为元字符(metacharacter)。表1是对特殊字符及其语法意义的使用描述。 表1特殊字符及其语法意义描述 特殊字符 功能 举例 转义字符。将下一个字符(特殊字符或者普通字符)标记为普通字符。 匹配 匹配行首的位置。 10匹配10。10。10。1,不匹配20。10。10。1 匹配行尾的位置。 1匹配10。10。10。1,不匹配10。10。10。2 匹配前面的子正则表达式零次或多次。10可以匹配1、10、100、1000、 (10)可以匹配空、10、1010、101010、 匹配前面的子正则表达式一次或多次。10可以匹配10、100、1000、 (10)可以匹配10、1010、101010、 ?匹配前面的子正则表达式零次或一次。 说明: 当前,在华为公司数据通信设备上运用正则表达式输入?时,系统显示为命令行帮助功能。华为公司数据通信设备不支持正则表达式输入?特殊字符。10?可以匹配1或者10 (10)?可以匹配空或者10 。 匹配任意单个字符。0。0可以匹配0x0、020、 。oo。可以匹配book、look、tool、 () 一对圆括号内的正则表达式作为一个子正则表达式,匹配子表达式并获取这一匹配。圆括号内也可以为空。 100(200)可以匹配100200、100200200、 xy 匹配x或y。100200匹配100或者200 1(23)4匹配124或者134,而不匹配1234、14、1224、1334 〔xyz〕 匹配正则表达式中包含的任意一个字符。 〔123〕匹配255中的2 〔xyz〕 匹配正则表达式中未包含的字符。 〔123〕匹配除123之外的任何字符 〔az〕 匹配正则表达式指定范围内的任意字符。 〔09〕匹配0到9之间的所有数字 〔az〕 匹配正则表达式指定范围外的任意字符。 〔09〕匹配所有非数字字符 最简单的正则表达式不包含任何特殊字符,例如,可以定义一个正则表达式hello,它只匹配字符串hello。实际应用中,是由多个普通字符和特殊字符组合使用,匹配某些特征的字符串。特殊字符的退化某些特殊字符如果处在如下的正则表达式的特殊位置时,会引起退化,成为普通字符。特殊字符处在转义符号‘’之后,则发生转义,变为匹配该字符本身。特殊字符、、?,处于正则表达式的第一个字符位置。例如:45匹配45,abc(def)匹配abcdef。特殊字符,不在正则表达式的第一个字符位置。例如:abc匹配abc。特殊字符,不在正则表达式的最后一个字符位置。例如:122匹配122。右括号)或者〕没有对应的左括号(或〔。例:abc)匹配abc),09〕匹配09〕。 除非特别说明,特殊字符的退化也适用于括号()内包含的子正则表达式。正则表达式的使用方法 使用正则表达式过滤命令行显示信息的方法有两种:在命令中指定过滤方式:在命令行中通过输入begin、exclude或include关键字加正则表达式的方式来过滤显示。在分屏显示时指定过滤方式:在分屏显示时,使用、或符号加正则表达式的方式,可以对还未显示的信息进行过滤显示。其中,等同关键字begin;等同关键字exclude;等同关键字include。 在命令中指定过滤方式 在支持正则表达式的命令中,有三种过滤方式可供选择:beginregularexpression:输出以匹配指定正则表达式的行开始的所有行。即过滤掉所有待输出字符串,直到出现指定的字符串(此字符串区分大小写)为止,其后的所有字符串都会显示到界面上。excluderegularexpression:输出不匹配指定正则表达式的所有行。即待输出的字符串中没有包含指定的字符串(此字符串区分大小写),则会显示到界面上;否则过滤不显示。includeregularexpression:只输出匹配指定正则表达式的所有行。即待输出的字符串中如果包含指定的字符串(此字符串区分大小写),则会显示到界面上;否则过滤不显示。regularexpression为字符串形式(不包括中文),长度范围是1255。 并非所有的display命令均支持指定过滤方式,一般只有显示信息较多的命令才支持。 系统对命令的显示信息进行过滤后,还支持上下文显示规则。上下文显示规则有如下几种:beforebeforelinenumber:输出符合过滤规则的行和其前面beforelinenumber行的数据信息。afterafterlinenumber:输出符合过滤规则的行和其后面afterlinenumber行的数据信息。beforebeforelinenumberafterafterlinenumber或者afterafterlinenumberbeforebeforelinenumber:输出符合过滤规则的行和其前面beforelinenumber行、后面afterlinenumber行的数据信息。beforelinenumber和afterlinenumber参数均为整数形式,取值范围是1999。 下面举例来说明在命令中指定过滤方式的用法。 例1:执行命令displayinterfacebrief,显示不匹配Ethernet、NULL或Tunnel的所有行。HUAWEIdisplayinterfacebriefexcludeEthernetNULLTunnelPHY:Physicaldown:administrativelydowndown:standby(l):loopback(s):spoofing(b):BFDdown(e):ETHOAMdown(dl):DLDPdown(d):DampeningSuppressedInUtiOutUti:inpututilityoutpututilityInterfacePHYProtocolInUtiOutUtiinErrorsoutErrorsEthTrunk1downdown0000EthTrunk17downdown0000LoopBack1upup(s)0000Vlanif1updown00MEth001downdown0000Vlanif2downdown00Vlanif10downdown00Vlanif12downdown00Vlanif13downdown00Vlanif20upup00Vlanif22downdown00Vlanif222downdown00Vlanif4094downdown00 例2:执行命令displaycurrentconfiguration,只显示匹配正则表达式vlan的所有行。HUAWEIdisplaycurrentconfigurationincludevlanvlanbatch210101to1028001000vlan2vlan10porttrunkpvidvlan800undoporttrunkallowpassvlan1porttrunkallowpassvlan10101800undoporthybridvlan1undoporthybridvlan1porthybriduntaggedvlan10undoporthybridvlan1undoporthybridvlan1 以上举例的显示信息仅为示意,请以设备实际显示为准。 在分屏显示时指定过滤方式 支持在分屏显示时指定过滤方式的命令行有:displaycurrentconfigurationdisplayinterfacedisplayarp 采用分屏显示时,可以在分屏提示符More中指定过滤类型:regularexpression:输出以匹配指定正则表达式的行开始的所有行。regularexpression:输出不匹配指定正则表达式的所有行。regularexpression:只输出匹配指定正则表达式的所有行。 例如:执行命令displaycurrentconfiguration,当分屏显示时,在余下的回显中仅显示Vlanif相关的信息。HUAWEIdisplaycurrentconfiguration!SoftwareVersionV200R009C00sysnameHUAWEIvlanbatch10to11100hotkeyCTRLGdisplaytcpstatuslldpenableundohttpserverenableundohttpsecureserverenabledhcpenabledhcpsnoopingenableVlanif输入过滤方式Filtering。。。interfaceVlanif10interfaceVlanif100