一个正则表达式就是由普通字符(例如a-z A-A 0-9等)以及特殊字符组成的文字模式,该模式描述在查找文字主体时待匹配的一个或多个字符,通常被用来检索、替换那些符合某个模式(规则)的文本
字符串匹配和验证:主要是对一些字符串进行验证的,验证它的合法性
数据提取和筛选
文本替换
文本格式化
文件操作
根据模式匹配从大字符串中提取子字符串
1.位置指示符:
^:表示一行的开始
$:表示一行的结束
2.常用转义码:
\n:匹配一个换行符。例如,正则表达式\n
可以匹配文本中的换行符。
\t:匹配一个制表符。在许多文本编辑器中,制表符表示为Tab键
\char:char是一个字符,表示能将\后的字符标记为一个原义字符也就是字符本身, 例如:{ % * ? . | [ ]等
\? \. \* \$ \^ :将字符原义输出
3.重复应用:
*:匹配前面的子表达式0次或多次 例如Ao* 能匹配到的表达式可以是A或Ao或Aoo..Aooo....
+:匹配前面的子表达式1次或多次 例如Ao+ 能匹配到Ao 不能是A,可是Aoo......
?:匹配前面的子表达式0次或1次 例如:Ao? 只能匹配到A或Ao
{n}:n是一个非负整数,匹配确定的n次 例如Ao{4},可能匹配到Aoooo
{n,}:n是一个非负整数,至少匹配n次,最多可以匹配无数次,例如Ao{2,} 能匹配Aoo,Aooo.......
{n,m}:n,m是一个非负整数,至少匹配n次,最多可以匹配m次 例如Ao{2,4} 能匹配到Aoo Aooo Aoooo
4.分组内容匹配:
. :匹配除\n之外的任何单个字符,如果要匹配包括"\n"在内的任何字符,请使用[.\n]
[xyz]:字符集合,匹配所包含的任意一个字符,例如[abc]可能匹配"plain"中的a,也可以匹配"boy"中的b,可以匹配"cat"中的c
[^xyz]:匹配未包含的任意字符,与上面相反 ,例如[^abcd]:可以匹配pig等,只要不包含abcd中的任意一个字符即可
[a-z]:字符范围 匹配指定范围内的任意字符,例如[a-z]:匹配a-z中的任意一个字符
[^a-z]:匹配不包含指定范围内的任意字符
\d:匹配一个数字字符 等价于[0-9]
\D:匹配非数字字符 等价于[^0-9]
\w:匹配包含下划线在内的任意的单个字符 等价于[a-zA-Z0-9_]
\W:匹配任意非单个字符 等价于[^a-zA-Z0-9_]
\S:匹配任意非空白字符,等价于[^\f\n\r\t\v]
\f:换页符
\r:回车符
\v:垂直制表符
\s:匹配任意的空白字符等价于[\f\n\r\t\v]
5.代位匹配:
x|y:匹配x或y,例如 z|food:能匹配food或z (z|f)ood:能匹配zood或food
6.优先级:从高到底的顺序为
\
() []
*+ ? {n} {n,} {n,m}
D.^$
E. |
7.常用的正则表达式:
身份证号: ^\d{17}(\d|X|x)$ 或 [1-9]\d{17}|[1-9]\d{16}[Xx]
电话号码:1[3456789]\d{9}$
邮编: \d{6}$
电子邮件:^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$ 或者\w+@\w+.\w+
网址:^(http|https):\/\/(?:a-zA-Z0-9?.)+(?:[a-zA-Z]{2,6}|[0-9]{3})$或者https?:\/\/\w+.\w+
正则表达式用于字符串处理、表单验证,文本处理等场合,实用高效