文章目录
正则表达式 Regular Expression:描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合条件的子串等;
1、普通字符
普通字符包括没有显示指定为元字符的所有可打印和不可打印字符,这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号;
- [A,B,C]:匹配[…]中的所有A,B,C字符;
- [^A,B,C]:匹配[…]中的所有除了A,B,C字符;
- [A-Z]:匹配所有大写字母;
- [a-z]:匹配所有小写字母;
- . :匹配除了换行符之外的任何单个字符,等同于[^\n\r];
- [\s\S]:匹配所有字符,\s为匹配所有空白符,\S为匹配所有非空白符(包括换行);
- \w:匹配字母、数字、下划线等,相当于[a-zA-Z0-9_];
2、非打印字符
- \cx:匹配由x指明的控制字符,x的值必须为A-Z或a-z之间,否则c将视为原义字符;
- \f:匹配换页符,等价于\x0c和\cL;
- \n:匹配换行符,等价于\x0a和\cJ;
- \r:匹配回车符,等价于\x0d和\cM;
- \s:匹配任意空白字符,包括空格、制表符、换页符等,等价于[\f\n\r\t\v];
- \S:匹配任何非空白字符,等价于[^\f\n\r\t\v];
- \t:匹配一个制表符,等价于\x09和\cI;
- \v:匹配一个垂直制表符,等价于\x0b和\cK;
3、特殊字符
- $:匹配输入字符的结尾位置,如果匹配本身则需要转义字符参与$;
- ():标记一个子表达式的开始和结束位置,子表达式可以获取供以后使用,要匹配这些字符,请使用(和);
- *:匹配前面的子表达式零次或多次,如果匹配本身则需要转义字符参与*;
- +:匹配前面的字表达式一次货多次,如果匹配本身则需要转义字符参与+;
- . :匹配换行\n之外的任意单字符;,如果匹配本身则需要转义字符参与.;
- [:标记一个中括号表达式的开始,如果匹配本身则需要转义字符参与[;
- ?:匹配前面的子表达式一次或零次,如果匹配本身则需要转义字符参与?;
- \:将下一个字符标记为或特殊字符、或原义字符,如果匹配本身则需要转义字符参与\;
- ^:匹配输入字符的开始位置,除非在方括号表达式中应用,表示不接受该方括号表达式中的字符集合,如果匹配本身则需要转义字符参与^;
- {:标记限定字符表达式的开始,如果匹配本身则需要转义字符参与{;
- |:指明两项之间的一个选择,如果匹配本身则需要转义字符参与|;
4、限定符
- *:匹配前面的子表达式零次或多次,等价于{0,};
- +:匹配前面的字表达式一次货多次,等价于{1,};
- ?:匹配前面的子表达式一次或零次,等价于{0,1};
- {n}:n是一个非负整数,匹配确定的n次;
- {n,}:n是一个非负整数,匹配至少n次;
- {n,m}:m、n均是一个非负整数,其中n<=m,最少匹配n次,最多匹配m次;