正则表达式

  1. 正则表达式-语法

字符
描述
举例
^
^号匹配字符串的开头(一行);
在[ ]中使用的时候,表示不接受该字符集合
^123:匹配以123开头的字符串
[^a-z]:匹配a-z以外的字符集
$
$号匹配字符串的结尾(一行)
abc$:匹配以abc结尾的字符串
\A
代表输入的开始位置(一段,不是一行)
\Z
代表输入的结束位置(一段,不是一行)
+
+号前面的字符必须至少出现1次或多次
runoo+b:可匹配runoob/runooob/runooooooob
*
*号前面的字符至少出现0次、1次或多次
runoo*b:可匹配runob/runoob/runooooooob
?
?号前面的字符最多只能出现一次;
当该字符紧跟在其他限定符(*,+,?,{n},{n,m})后面时,匹配模式是非贪婪的,即尽可能少的匹配所搜索的字符串
colou?r:可匹配color/colour
o+?:匹配单个字符o,而o+才匹配多个o
.
匹配单个任意字符, 要匹配包括 '\n' 在内的任何字符,请使用像"(.|\n)"的模式。
{n}
匹配前一个字符n次
o{2}:匹配"food"中的两个o
{n, }
匹配前一个字符至少n次
{n,m}
匹配前一个字符n到m次
\d
数字
\D
非数字
\s
空格
\S
非空格
\w
匹配字母、数字、下划线字符,等价于:[a-zA-Z0-9_]
\W
匹配非字母、数字、下划线字符,等价于:[^a-zA-Z0-9_]
\b
匹配字边界处的字符,即字与空格间的位置
\bapt匹配aptitude中的apt
\B
非字边界匹配
\Bapt匹配chapter中的apt
\num
后向引用,num是一个正整数,对所获取的匹配的引用
<h([1-6])>.*?</h\1 >\1代表前面的子模式([1-6])的匹配结果
x|y
匹配x或y
[a-z]
匹配字符范围,如:字母a-z
(pattern)
圆括号,匹配pattern子模式,并获取这一匹配结果,可用于后向引用
(?:pattern)
匹配pattern但不获取这一结果,不能用于后向引用
(?=pattern)
正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串(非获取匹配,仅作为条件限制)
Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows
(?!pattern)
负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串(非获取匹配,仅作为条件限制)
'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"
\f
匹配一个换页符
\n
匹配一个换行符
\r
匹配一个回车符
\t
匹配一个制表符
\v
匹配一个垂直制表符
\xn
匹配 n,其中 n 为十六进制转义值,十六进制转义值必须为确定的两个数字长
'\x41' 匹配 "A"
\n
标识一个八进制转义值或一个向后引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为向后引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。
\nm
标识一个八进制转义值或一个向后引用。如果 \nm 之前至少有 nm 个获得子表达式,则 nm 为向后引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的向后引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。
\nml
如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。
\un
匹配 n,其中 n 是一个用四个十六进制数字表示的 Unicode 字符。
汉字:^[\u4e00-\u9fa5]{0,}$

  1. 正则表达式-运算符优先级
优先级由高到低排序为:

运算符
描述
\
转义符
(),(?:),(?=),[]
圆括号和方括号
*,+,?,{n},{n, },{n,m}
限定符
^,$,\任何元字符、任何字符
定位点和序列(即:位置和顺序)
|
替换,"或"操作
字符具有高于替换运算符的优先级,使得"m|food"匹配"m"或"food"。若要匹配"mood"或"food",请使用括号创建子表达式,从而产生"(m|f)ood"。

  1. 常用的正则表达式
1、长度为8-10的用户密码(以字母开头、数字、下划线)
    ^[a-zA-Z]\w{7,9}$
2、验证输入只能是汉字 :
    ^[\u4e00-\u9fa5]{0,}$
3、电子邮箱验证:
       ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
4、URL地址验证:
       ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
5、简单的身份证号验证:
       \d{15}|\d{18}$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值