2018-01-03正则表达式学习四之位置匹配

元字符:\b 与\B

他们两个叫做边界元字符
讲它之前先复习一下:
\w 表示数字,字母与下划线
\W 表示\w以外的字符
那么\b 表示边界含义就是 一个\w与一个\W字符之间的边界
同样 \B 表示为上面的反面
\B 表示一个\w与一个\w,或者一个\W与一个\W之间的边界

元字符:^ 与$

其实^这个符号我们第一篇文章里学习过
[0-9] 与[^0-9] 我们发现它在[]里面表示的是一个补集的概念!
而这里我们讲的是不放在[]里面的^
它叫字符串边界符
^ 匹配字符串头部 $ 字符串尾部

扩展含义:在正则表达式前面加(?m)后,开启分行匹配模式(不是所有的都支持分行匹配)
^还可以匹配行分隔符(换行符)后面开始的问题
$还可以匹配行分隔符(换行符)后面结束的问题

子表达式()

有很多h5程序员使用  来代替非换行型空格。
我们怎么匹配这个呢?
 {2}
这样我们只能匹配 ; 因为次数集合只对紧挨着它的前一个字符有效果。
使用字表达式就可以解决这个问题
( ){2}
应用举例:ip地址的匹配
\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}
使用字表达式后
(\d{1,3}.){3}\d{1,3}

字表达式应用举例 如匹配年份 19|20\d{2}
可以匹配19 与2008 不能完全匹配1998
以为|这个或者元字符的优先级太高了!加入字表达式()可以解决优先级问题
(19|20)\d{2}

字表达式的嵌套使用 ,同样匹配ip地址,但是数字不能大于255,如下:
(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])).){3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))

Ps:正则表达式只是字符的匹配,并没有什么的数值的逻辑运算处理,所以<= 255真的很难处理。只能按照上面的处理方式进行处理。

你可能感兴趣的:(2018-01-03正则表达式学习四之位置匹配)