正则表达式

正则表达式   

正则表达式在线测试网址 : http://tool.chinaz.com/regex/?qq-pf-to=pcqq.group

作用

检测某一段字符串是否符合规则

从一大段文字中将符合规则的匹配出来

只和字符串相关

字符组 [ ]  描述的是一个字符位置上的内容规则

[01234]  [0-5]  [0-9]     [9-0] × 不能从大到小来规定范围

字符组内所有范围都是根据ascii码来的

所有数字[0-9]

小写字母[a-z]

大写字母[A-Z]

所有字母[A-Za-z]

数字和大小写字母[0-9A-Za-z]

想匹配什么就往[]里写什么

转义

想匹配 - 要转义后匹配  使用 \ 作为转义符 例[1\-2]

在测试的网页上写的是什么 就直接复制过来,然后在字符串外面加上一个 r 

\t \本身具有转义作用,相当于改变了t本来的面目

\\ \本身具有转义作用,\\相当于转义了\的特殊作用,相当于普通的一个'\'

字符组之外其他有特殊规则的元字符

\d          匹配任意一个数字                   字符组[0-9]更灵活,精准   \d更方便

\w         匹配所有数字字母下划线

\t           匹配 tab (制表符)

\n          匹配换行符(回车)

\s          匹配所有的空白( \t  \n  空格 )

空格       匹配所有的空格

\b          匹配一个单词的边界

反义词

\W          匹配除了数字字母下划线( \w )外的所有

\D           匹配除了 \d 之外的所有

\S           匹配除了空白之外的所有

.              匹配换行符之外的所有字符

匹配所有

[\D\d]           [\W\w]

非字符组 

[^123]             匹配除了123之外的所有

开始符和结束符

开始符 ^   只匹配开头    永远在一个规则最开始

结束符$    只匹配结尾    永远在一个规则最末尾

^ 和 $ 规定了字符串的长度,并且在这个长度内的内容  多用于作用 - 

或的概念

123|456      匹配123或456     把相对长(优先匹配)的放在左边

分组的概念

www\.(baidu|oldboy)\.com         用括号括起来,表示约束范围

量词

贪婪匹配

在量词的范围内尽可能多的匹配

1[3-9]\d{9}      测试匹配手机号   {9} 表示前面这一位字符规则出现9次

{n}     表示出现n次

{n,}       表示至少出现n次

{n,m}      表示出现n-m次

?       表示匹配0次或1次           即可以存在也可以不存在

+       表示匹配1次或多次

*        表示匹配0次或多次

匹配整数    [1-9]\d*|0

匹配小数    \d+\.\d+

匹配一个小数或整数         \d+\.\d+|([1-9]\d*|0)

惰性匹配

贪婪匹配是默认的    惰性匹配是需要我们手动设置的    尽可能少的匹配

a.*                           以a开头的任意字符串都可以被匹配出来

a.*?                         ?不代表量词  非贪婪  所以取0个

a.*?x                       不加问号的话一直匹配到最后一个x才停    加了问号后遇到x就停止匹配

                               从a开始匹配任意长度的字符    遇到一个x立即停止

 

 

 

posted @ 2019-03-21 15:58  亚里士多缺德  阅读(104)  评论(0)    收藏  举报