简介
正则表达式(Regular expression,简写为Regexes)是一种用来操作和检验字符串数据的强大工具。它相当与一串特殊的字符,用它可以转换成算法,对文本进行匹配等操作。
事实上正则表达式有其自身的一套语法,这种语法对于初学者来说显得有些晦涩难懂。尤其是其构造比较困难,称为很多入门者的障碍。但当掌握后却可以轻易的解决以前不容易解决的很多文本类问题,如验证提取等。
正则表达式基础语法
匹配不同类型的字符
字符类 |
匹配的字符 |
\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]。 |
.(点号) |
任一字符 |
[...] |
括号中的任一字符 |
[^…] |
非括号中的任一字符 |
定位控制字符
符号 |
描述 |
^ |
其后的模式必须在字符串的开始处,如果是多行则在任一行的开始 |
$ |
前面的模式必须在一行的末尾,如果是多行,则在任意行的末尾 |
\A |
前面的模式必须在字符串的开始处;多行标志被忽略 |
\z |
前面的模式必须在字符串的末尾处,多行标志被忽略 |
\Z |
前面的模式必须位于字符串的末尾或位于换行符前 |
\b |
匹配一个单词字符的开始,单词字符是[a-zA-Z0-9]中的一位 |
\B |
匹配一个非单词边界的位置, 不在一个单词的开始 |
#指定重复字符
符号 |
描述 |
{n} |
匹配前面的字符n次 |
{n,} |
匹配前面的字符最少n次 |
{n,m} |
匹配前面的字符n至m次 |
? |
匹配前面的字符0次或1次 |
+ |
匹配前面的字符至少1次 |
* |
匹配前面的字符至少0次 |
特殊控制类
符号 |
描述 |
| |
指定字符替换,即该位置可以是|两边的任一个表达式 |
特殊字符转义序列
符号 |
描述 |
\\ |
匹配”\” |
\. |
匹配“.” |
\* |
匹配“*” |
\( |
匹配“(” |
\) |
匹配”)” |
\? |
匹配“?“ |
\+ |
匹配“+“ |
| |
匹配“|“ |
\{
|
匹配“{“ |
\} |
匹配“}“ |
\^ |
匹配“^“ |
\$ | 匹配“$“ |
\n |
匹配换行符 |
\r |
匹配回车 |
\t |
匹配Tab键 |
\v |
匹配垂直制表符 |
\f |
匹配换页符 |
\nnn |
匹配一个三位八进制数指定的ASCII字符,如\103匹配C |
\xnn |
匹配一个二位16进制数指定的ASCII字符,例如\x43匹配C |
\unnnn |
匹配一个4位16进制数指定的Unicode字符 |
\cV |
匹配一个控制字符,(如复制Ctrl+C) |
更多请参考:
https://www.jb51.net/article/18526.htm