1.非打印字符 .*\.(js|css|PNG|jpg|ico|png|gif).*
\cx ---匹配由x指明的控制字符,x为a-z或者A-Z之一
\f ---匹配一个换页符,等价于\x0c(为数字零)和\cL
\n ---匹配一个换行符,等价于\x0a和\cJ
\r ---匹配一个回车符,等价于\x0d和\cM
\s ---匹配任何空白字符(空格、换行、换页符等),等价于[\f\n\r\t\v]
\S ---匹配任何非空白字符,等价于[^\f\n\r\t\v]
\t ---匹配制表符,等价于\x09和\cl
\v ---匹配垂直制表符,等价于\x0b和\cK
2.特殊字符
$ ---匹配字符串结尾,如:^[0-9]+$
() ---子表达式开始与结束位置
* ---匹配前面子表达式0到多次
+ ---匹配前面子表达式1到多次
. ---匹配除换行符\n外的任何单个字符;在中括号中只匹配字符.;如:[.]只匹配.
[] ---中括号表达式的开始与结束
? ---匹配前面子表达式0到1次
\ ---转义字符
^ ---匹配字符串开始,在方括号表达式中使用,表示非 (^[0-9])+ //匹配有一至多个数字的字符串组合;[^[0-9]]+ // 匹配有一至多个不含数字的字符串组合
{} ---标记限定符表达式的开始与结束,如{n,m}
| ---或,两项之间的一个选择
3.限定符
{n} ---n为非负整数,匹配确定的n次
{n,} ---n为非负整数,至少匹配n次
{n,m} ---n,m为非负整数,n<=m,匹配n--m次
4.定位符
\b ---匹配一个单词的边界,如:\ba---匹配abcd的a;a\b--匹配bcda的a
\B ---匹配非单词边界,如: \Bbcd---匹配abcd的bcd不匹配bcda的bcd
通过在 *、+ 或 ? 限定符之后放置 ?,该表达式从"贪心"表达式转换为"非贪心"表达式或者最小匹配
5.元字符
\d ---匹配数字,等价于[0-9]
\D ---匹配非数字,等价于[^0-9]
\w ---匹配数字字母下划线,等价于[0-9A-Za-z_]
\W ---匹配非数字字母下划线,等价于[^0-9A-Za-z_]
\num ---num为正整数,对所获取的匹配的引用。如(.)/1---匹配两个连续的相同字符
例子:
/\b([a-z]+) \1\b/gi 一个单词连续出现的位置,/gi是全局标记,g标记表示能够查找到的都匹配出来,i标记表示不区分大小写
/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/ 将一个URL解析为协议、域、端口及相对路径,如:https://www.csdn.net:8080/fdhfhueefee