正则表达式的基本语法

下面有我整理的关于正则表达式的基本语法;
具体案例网络爬虫

一.正则表示式语法

1.1普通字符

字母、数字、汉字、下划线、以及没有特殊定义的标点符 号都是“普通字符”。

1.2转义字符

java中的转义字符一致

1.3标准字符集

\d

\d 任意一个数字,0~9 中的任意一个

\w

任意一个字母或数字或下划线,也就是 A~Z,a~z,0~9,_ 中任意一个

\s

包括空格、制表符、换行符等空白字符的其中任意一个

.

小数点可以匹配任意一个字符(除了换行符)
如果要匹配包括“\n”在内的所有字符,一般用[\s\S]

 

1.3自定义字符集

正则表达式的特殊符号,被包含到中括号中,则失去特殊意义,除了 ^,-之外。

如:[\d.\-+]将匹配:数字、小数点、+-

 

[ab5@]

匹配 "a" "b" 或 "5" 或 "@"

^

[^ abc]

匹配 "a","b","c" 之外的任意一个字符

-

[f-k]

匹配 "f"~"k" 之间的任意一个字母

 

[^A-F0-3]

匹配 "A"~"F","0"~"3" 之外的任意一个字符

 

1.4量词

a\d?b 将匹配ab之间出现0-1字符
a\d+b 将匹配ab之间最少出现1字符
a\d*b 将匹配ab之间最少出现0字符

{n}

表达式重复n

{m,n}

表达式至少重复m次,最多重复n次

{m,}

表达式至少重复m

?

匹配表达式0次或者1次,相当于 {0,1}

+

表达式至少出现1次,相当于 {1,}

*

表达式不出现或出现任意次,相当于 {0,}

 

 

1.5字符边界

匹配的不是字符而是位置

^

与字符串开始的地方匹配

$

与字符串结束的地方匹配

\b

匹配一个单词边界

 

1.6选择符与分组

|

左右两边表达式之间 "" 关系

([a-z]{2,})\1

分组已捕获的字符串

([a-z]{2,})\1

 

 

1.7零式断言

(?=exp)

断言自身出现的位置的后面能匹配表达式exp

[a-z]+(?=\d)

 

一.实例

2.1电话号码验证


(1)电话号码由数字和"-"构成 –
(2)电话号码为78位 –
(3)如果电话号码中包含有区号,那么区号为三位或四位, 首位是0.
(4)区号用"-"和其他部分隔开

结果:0\d{2,3}-\d{6,8}

2.2手机验证


(1)移动电话号码为11位 –
(2)11位移动电话号码的第一位和第二位为"13“,”15”,”18

结果:1[358]\d{3,9}\b

posted @ 2020-01-22 10:05  咔咔kk  阅读(347)  评论(0编辑  收藏  举报