什么是正则表达式
是由一些字符和特殊符号组成的字符串
能按照某种模式匹配一系列有相似特征的字符串
正则表达式中的符号
lierral 字面值
| 或
. 匹配任意字符(除n之外)
^ 匹配字符串起始部分
$ 匹配字符串终止部分
* 匹配0次或者多次前面出现的正则表达式
+匹配1次或者多次前面出现的正则表达式
?匹配0次或者1次前面出现的正则表达式
{N}匹配前面N次出现的正则表达式
{M,N}匹配前面M-N次出现的正则表达式,最大化优先
{...} 匹配来自字符集的任意单一字符
{...x-y..} 匹配x-y范围中的任意字符
[^...] 不匹配此字符集合中传的任意一个字符,包括某一范围的字符
(*|+|?|{})? 用于匹配上面频繁出现/重复出现符号的非贪婪版本
(...) 匹配封闭的正则表达式,然后另存为子组
正则表达中的特色字符
d 匹配任意十进制数字 与 D相反
w 匹配任意字母数字字符
s 匹配任意空格字符
b 匹配任何单词边界
N 匹配已经保存的子组N
c 逐字匹配任何特殊字符 c
A(Z)匹配字符串的起始(结束)
正则表达式中的扩展表示法
使用正则表达式
简单匹配 abc
多个匹配模式 abc|123
匹配任意字符(.)
a+bc a*bc 指符号前面的a出现的次数
[...]匹配字符集合中任意单一字符
匹配同类型
d匹配的是数字字符,小数无法匹配
空格字符 ntsvf
^ $ 必须是整个字符串的开头
匹配特殊字符
用进行转义 \ . ^
指定匹配的选项 []指定集合
正则表达式分组
重复一个字符串时
使用()进行分组,使用(?
从左向右,以分组的左括号为标志,第一个出现的分组的组号1,第二个为2,以此类推
使用1,2反向引用 k{name}
贪婪模式与非贪念模式
贪婪匹配:在整个表达式匹配成功的前提下,尽可能多的匹配 默认
非贪婪匹配:在整个表达式匹配成功的前提下,尽可能少的匹配
在需要匹配的中加上"?" 即为非贪婪模式
正则表达式应用
身份证号码匹配:(d{6})(d{4})((d{2})(d{2}))(d{2})(d{1})([0-9]|x)
电子邮箱:[a-zA-z0-9_-]+@[a-zA-Z0-9-]+(.[a-zA-Z0-9]+)*(.[a-zA-Z]{2,5})



