常见正则表达式汇总【一】

1.  匹配行的起始和结束:

Ip as-path access-list 20 permit 850

该过滤器匹配任何包含字符串 850 的 as-path 。匹配的 as-path 例如:( 850 ),( 23 , 5 , 850 , 155 )和( 1123 , 850 , 367 )等等。无论所匹配的串是属性中唯一的串或者属性中多个 AS 号中的一个甚至是属性中一个很大的 AS 号中的一部分,该匹配都成功。

Ip as-path access-list 20 permit ^850$

该过滤器表示:开始紧接着一个字符串 850 ,然后紧接行的结束,只匹配 AS850.

Ip as-path access-list 20 permit ^$

正则表达式匹配行的开始紧接行的结束;如果行的开始与行的结束间存在任何字符则匹配不成功。


2 .匹配字符集合:

   Ip as-path access-list 20 permit ^85[0123459]$

    该过滤器匹配包含单一 AS 号, 850 , 851 , 852 , 853 , 854 , 855 , 859 的 as-path.

   Ip as-path access-list 20 permit ^85[0-5]$

    该过滤器匹配包含单一 AS 号, 850 , 851 , 852 , 853 , 854 , 855.


3. 否定:匹配除字符集和外的其他任何字符

当在括弧中使用加字符时,将否定方括弧中制定的范围。结果是正则表达式将匹配范围外的任何内容。

Ip as-path access-lisr 20 permit ^85[^0-5]$

该过滤器除了多一个加字符以外与上一个过滤器类似,指定了“不是 0~5 ”。该正则表达式将匹配除( 850 , 851 , 852 , 853 , 854 , 855 )范围以外的 AS 号。

 

4 .通配符:匹配任何单一字符。

    点(。)匹配任何单一字符。单一字符可能是一个空的。

   Ip as-path access-list 20 permit ^85.

    该过滤器匹配一个由 AS 号 850-859 开始的 as-path 。由于“。”可以匹配一个空格, AS 号 85 也能匹配成功。

 

5.   替代:匹配字符串集合中的一个

    ( | )用作表示一个“或”操作。即( | )任何一边的字都可以匹配。

Ip as-path access-list 20 permit ^(851|852)$

该过滤器匹配单个的 AS 号: 851 或 852 的 as-path. 你可以扩展“或”功能来作多于 2 个可能性的选择。

Ip as-path access-list permit ^(851|853|855|858|869)

该过滤器匹配单个的 AS 号: 851,853,855,858 或 869 的 as-path.

 

6 .选择字符:匹配一个可能存在也可能不存在的字符。

问号(?)匹配字的 0 个或一个实例。

Ip as-path access-list 20 permit ^(850)?$

该过滤器匹配一个单一 AS 号 850 的 as-path 或者匹配一个空的列表。注意这里的园括弧,表示元字符特殊字符“?”应用在整个 AS 号上。如果表达式使用 850 ?,元字符特殊字符只应用在最后一个字符上。该表达式匹配 85 或者 850.


7 .重复:匹配许多字符的重复

  星号( * )匹配 0 次或多次重复,加号( + )匹配 1 次或多重复。

Ip as-path access-list 20 permit ^(850)*$

该过滤器 as-path 匹配空的 AS 列表或包含 1 个或多个的 AS 号 850 的列表。即 AS 路径可以是( 850 ),( 850 , 850 ),( 850 , 850 , 850 )等。

Ip as-path access-list 20 permit ^(850)+$

该过滤器的功能与上面的类似,只是要求列表中至少包含 1 个 AS 号 850.


8 .分界线:描述多个字 .

    分界线( _ )用作描述分隔分别指定的一串字。

   Ip as-path access-list 20 permit ^560_148_284_13$

    该过滤器表示匹配指定的 as-path ( 560 , 148 , 284 , 13 )。

   Ip as-path access-list 20 permit -560_148_284_13_

    该过滤器只要求指定的序列包含在 as-path 中,并不要求是唯一的属性。可以匹配 as-path ( 12 , 560 , 148 , 284 , 13 , 18 )或 as-path ( 560 , 148 , 284 , 13 , 29 )等等。

 

9 .放到一起:一个复杂的例子。

   将多个元字符特殊字符混合是用来匹配一些复杂的字符串才能显示正则表达式的真正威力,考虑下面的过滤器。

  Ip as-path access-list 20 permit ^ ( 550 ) +_[880|2304]?_1805_.*  

 

  该过滤器表明:在一个或多个 550 之后,可能存在 880 或者 2304. 接下来必须有一个 1805. 最后的部分指定 1805 以后, as-path 可能存在任何 AS 号序列,也可能什么也没有。

原文地址:https://www.cnblogs.com/jinhengyu/p/7516581.html