正则表达式

特殊字符:.|*?+(){}[]^$\,相当于语言的关键字,这些字符前面加转义符"\"表示字符本身,否则就作为正则表达式特殊用途字符。

 

.+?表示最小匹配,?表示非贪婪匹配

举例说明.+?与.+的区别
<a href="xxx"><span>
如果用<.+>匹配,则匹配结果是
<a href="xxx"><span>
如果用<.+?>匹配,则匹配结果是
<a href="xxx">
也就是.+?只要匹配就返回了,不会再接着往下找了

 

 

 

正则表达式:(?<=(href=")).{1,200}(?=(">))

解释:(?<=(href=")) 表示 匹配以(href=")开头的字符串,并且捕获(存储)到分组中

(?=(">)) 表示 匹配以(">)结尾的字符串,并且捕获(存储)到分组中

 

 

 

[ ] 方括号在这里被叫做原子表,它能够匹配括号中出现的任意一个元素

 

[abcd] //匹配abcd中任意一个字母
[!@#] // 匹配!@#中任意一个符号
[0-9] //匹配0,1,2,3,4,5,6,7,8,9中任意一个数字

三个常用的特殊符号: * + ?

    • * 星号可以匹配前面出现的元素0次,1次或任意多次
    • + 加号可以匹配前面出现的元素1次或任意多次
    • ? 问号可以匹配前面出现的元素0次或1次
ab* //匹配 a,ab,abb,abbb.......
ab+ //匹配 ab,abb,abbb,abbbb.......
ab? //匹配 a,ab

( ) 圆括号在这里被叫做模式单元符,他能够将一些元素组合成一个大的,不可分割的新元素,类似于括号在正常运算中的作用。

(ab*)? //匹配 空串 或 a,ab,abb,abbb.......
(ab+)? //匹配 空串 或 ab,abb,abbb,abbbb.......
(ab?)? //匹配 空串 或 a,ab

匹配任意字符:.(除换行符)

a.c  //匹配aac,abc,acc,adc.......

   转义符 : 如果想要匹配本身拥有特殊意义的符号,可以使用转移符\

\. // 匹配一个小数点

边界限制字符:^ $

  • ^ 匹配字符串的开始
  • $ 匹配字符串的结束
^a.* //匹配以a开头的字符串
.*a$ //匹配以a结尾的字符串
posted @ 2018-03-11 09:02  our_song  阅读(305)  评论(0编辑  收藏  举报