正则表达式的用途场景有搜索和替换。正则表达式是一些用来匹配和处理文本的字符串。清单如下:
*本文不限语言,各编译语言略有差异。
单个字符列表
.(英文句号) |
可以匹配任何一个单一的字符 |
\ |
元字符。表示“这个字符由特殊含义,而不是字符本身含义”。举例(\.对.进行转义,表示.本身) |
- |
(连字符)在字符集合之内,作为一个特殊的元字符。字符集合之外,是一个普通字符,等于其本身,不需要被转义 |
^ |
用于字符集合中,取非操作。 |
[\b] |
回退(并删除)一个字符 |
\f |
换页符 |
\n |
换行符 |
\r |
回车符 |
\t |
制表符 |
\v |
垂直制表符 |
\r\n |
"回车+换行"组合,有许多操作系统都将这个组合作为文本行的结束标签。 |
\d |
任何一个数字字符(等价于[0-9]) |
\D |
任何一个非数字字符(等价于[^0-9]) |
\w |
任何一个字母数字字符(大小写都包括)或下划线字符(等价于[a-zA-Z0-9_]) |
\W |
任何一个非字母数字字符(大小写都包括)或非下划线字符(等价于[^a-zA-Z0-9_]) |
\s |
任何一个空白字符(等价于[\f\n\r\t\v]) |
\S |
任何一个非空白字符(等价于[^\f\n\r\t\v]) |
\c |
指定各种控制字符。比如说,\cz匹配Ctrl-Z |
字符集合
[A-Z] |
匹配A到Z的所有大写字母 |
[a-z] |
匹配a到z的所有小写字母 |
[A-F] |
匹配A到F的所有大写字母 |
[A-z] |
匹配从ASCII字符A到z的所有字母 |
.(英文句号) |
在集合中表示自身,不需要转义,即[.]正确 |
重复次数
+ |
匹配一个或者多个(至少一个)。 |
* |
匹配0个或多个。 |
? |
匹配一个字符的零次或一次出现,最多一个。 |
{a} |
重复a次,a为数字。 |
{a,b} |
最少重复a次,最多b次。其中b可以为空,逗号必须有。 |
贪婪型和懒惰型
贪婪型元字符 |
懒惰型元字符 |
* |
*? |
+ |
+? |
{n, } |
{n, }? |