前言
近来在书写脚本中,用到了较多正则表达式。在不了解正则表达式规则的情况下,第一眼看到各种符号组合,比较难以理解,这里对其进行梳理,以满足日常简单开发需求。
正则表通常被用来检索、替换、过滤符合某个模式(规则)的文本。
元字符
元字符为特殊含义的字符,主要有以下:
元字符 | 含义 |
---|---|
. | 匹配除了换行符以外的任何字符 |
\ | 用于特殊字符的转义 |
\b | 匹配一个单词边界,即指单词和空格间的位置;如’er\b’可匹配”never” 中的’er’,但不能匹配”verb”中的 ‘er’ |
\B | 匹配非单词边界,如’er\B’可匹配”verb”中的’er’,但不能匹配”never” 中的’er’ |
\d | 匹配一个数字字符 |
\D | 匹配一个非数字字符 |
\s | 匹配任何空白字符,包括空格、制表符、换页符等 |
\S | 匹配任何非空白字符 |
\w | 匹配任意字母、数字,下划线、汉字 |
\W | 匹配任意非字母、数字 |
^ | 行开始 |
$ | 行结束 |
[] | 表示范围,用于精确匹配 |
\A | 匹配字符串开始 |
| | 表示或 |
量词
量词 | 含义 |
---|---|
? | 0个或1个字符,表示重复0或1次 |
+ | 至少一个字符,表示重复1次或更多次 |
{n} | n个字符,表示重复n次 |
{n,m} | n~m个字符,表示重复至少n次,至多m次 |
{n,} | 至少n个字符,表示至少重复n次 |
常规使用采用元字符与量词之间的组合,如:
.* :匹配任意数量不包含换行的字符
\d+:匹配一个或者更多连续数字
[^x]: 匹配除x以外的字符