常见正则表达式记录

常见转义字符

\n  \t \

如果要匹配字符本身的话就需要转义

为什么需要转义,因为这些字符在正则表达式中都有特殊含义,转义是为了不产生混淆

转义只需要在前加\,表示匹配本身

常见字符

  • \d  任意一个数字0到9

  • \w  任意一个字母数字下划线

  • \s  任意一个空白符(空格、制表、换行)

  • \S  任意一个空白符之外             [\s\S]  

  • \b  匹配单词的开始或结束            \bword\b

  • \^  匹配字符串的开始

  • $  匹配字符串的结束

  • .   任意字符(除换行)

  • ?  {0,1}

+  {1,}

*  {0,}

  • |  或

  • &&  类似c的逻辑&&

注意[]中除了^其他符号都没有了特殊意义


贪婪    尽量匹配更多的字符

非贪婪(加上?)  与贪婪相反


下面列举一些常用的正则

1
2
3
4
5
6
7
8
9
10
11
12
Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
身份证号:\d{15}|d{18}
日期格式:^\d{4}-\d{1,2}-\d{1,2} xml
文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
 中文字符:[\u4e00-\u9fa5]
QQ:[1-9][0-9]{4,} 
中国邮政编码:[1-9]\d{5}(?!\d)
 IP地址:\d+\.\d+\.\d+\.\d+  
 空白符:\n\s*\r

几种处理模式

1
2
3
4
5
IgnoreCase(忽略大小写)    匹配时不区分大小写。
Multiline(多行模式) 行首和行尾匹配时任意一行都会进行匹配
Singleline(单行模式) .可以匹配每一个字符(包括换行符\n)。
IgnorePatternWhitespace(忽略空白) 忽略表达式中的非转义空白并启用由#标记的注释。
ExplicitCapture(显式捕获) 仅捕获已被显式命名的组。