正则表达式基础用法

参考文档  正则表达式必知必会  Ben Forta著 杨涛译

 

一、  正则表达式用途  搜索和替换   正则表达式是用来匹配和处理文本的字符串

二、 元字符分为两种,  一种匹配文本的(例如.  *), 一种是正则表达式语法所要求的(例如[])。这些元字符要匹配自己本事需要转义"\"

空白元字符

 

 

 

 

 

 

 

“贪婪型”元字符,进行匹配时是”多多益善而不是适可而止”

”懒惰型”元字符,进行匹配时是“匹配尽可能少的字符”

 

 

 

五、位置匹配

 \bcat\b   \b用来匹配完整的单词,\b只匹配一个位置,单词边界,不匹配任何字符
\B          不匹配单词边界

 

子表达式

子表达式的作用是把同一个表达式的各个相关部分组合在一起,对重复次数元字符的作用对象作出京珠的设定和控制、对"|"操作的OR条件作出准确的定义

子表达式将多个元素作为一个元素处理,用(),例如(abc)指必须匹配abc的字符串,abc作为独立元素,相当于一个元素

子表达式中的或用"|",例如(19|20) 指的是19或20

子表达式回溯引用

 

 小结:

使用元字符
[\w.]+@[\w.]+\.\w    匹配合法电子邮箱地址  
[1-9][\d]{1,3}[\-]\d{1,2}[\-]\d{1,2}

匹配IP地址
(([1-9]|[1-9][0-9]|1\d{2}|2[0-4][0-9]|25[0-5])\.){3}([1-9]|[1-9][0-9]|1\d{2}|2[0-4][0-9]|25[0-5])
一位数字非0
两位数字,第一位不是零
1开头的任意三位数字
2开头的,第二位在0-4之前的任意三位数字
25开头的,第三位在0-5之间的三位数字

匹配重复次数
+  匹配前面的字符或字符集合一次或多次  
*  匹配前面的字符或字符集和集合零次或多次   
?  匹配前面的字符或字符集合零次或一次
{2,4} {6}  匹配前面的字符或字符集合具体次数
{3,}     匹配前面的字符或字符集合至少多少次
{,3}     匹配前面的字符或字符集合最多多少次
在字符集合中[.+] 不需要转义,默认是普通字符

位置匹配
\bcat\b   \b用来匹配完整的单词,\b只匹配一个位置,单词边界,不匹配任何字符
\B          不匹配单词边界
^   只在[]中,紧跟[后面时,是非的意思,在字符集合外面,并位于一个模式的开头,^将匹配字符串的开头
$   匹配字符串或字符集合的结尾

子表达式
(),例如(19|20|21)\d{2}   指的是以19、20、21开头的四位数字

表达式的回溯引用  前后一致引用
[]+(\w+)[]+\1   \1代表第一个子表达式()  \2代表第二个子表达式  我们可以把回溯引用理解为变量  \0 代表整个正则表达式

 

正则中 []、() 、{}区别

[]  指匹配其中一个即可,例如[abc],只要匹配abc中的一个字母就可以

() 将()中的表达式看做一个元素,例如(abc)指匹配到abc的字符串

{} 指的是前面表达式匹配的次数

 

 

 

 

 

 

 

 

posted @ 2018-12-12 14:51  彷徨123  阅读(233)  评论(0编辑  收藏  举报