1.概述
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
2.字符
2.1普通字符
字母、数字、汉字、下划线、以及没有特殊定义的标点符号,都是“普通字符”,这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。
表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。
图中蓝色即为匹配结果
2.2 非打印字符:
非打印字符也可以是正则表达式的组成部分。
\n | 换行符 |
---|---|
\t | 制表符 |
\^,\[,\],\*,\( | 代表符号本身 |
\\ | “\”本身 |
3.字符集合:
3.1 元字符
语法 | 说明 | 举例 |
---|---|---|
. | 除换行符意外的任意一个字符 | a.c —— ahc,a是c |
{n} | 重复n次 | a{3} —— gaaaf,gaaaaaf |
{n,} | 至少重复n次 | a{3,} —— aaa,sdsaaaaa |
{n,m} | 重复n-m次 | a{2,3} —— aaa,sdsaaaaa |
10%:a | 长度小于10且出现a的文本 | china |
10%a:b | 长度小于10且不出现1,必出现b的文本 | book |
() | 捕获组 |
3.2 常见语法
语法 | 说明 | 举例 |
---|---|---|
a | 出现a | abc,xxasd |
a b | 出现a和b | ab,abc,asdb |
(a|b) | a或b出现 | ac,bd,sad |
(a|b) c | a或b出现,同时c出现 | ac,bc,abcdf |
c:a b | a和b出现,但没有c | abdfffd |
a b:c d | c和d出现,但没有a和b | cdhkjh,hkckjhd |
3.3 其他用法
语法 | 说明 |
---|---|
\w | 匹配数字、字母、下划线、汉字 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
“^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
\W | 匹配任意不是数字、字母、下划线、汉字的字符 |
\S | 匹配任意不是空白符的字符 |
\D | 匹配任意不是数字的字符 |
\B | 匹配不是单词开头或结束的位置 |
[^x] | 匹配除了x以外的任意字符 |
[^abcd] | 匹配除了abcd这几个字母以外的任意字符 |
4. 零宽断言
5.反向引用(\nnn)
参考其他作者链接
1.-过客-
2.raoshihong
3.other blog
4. Little_Rookie