Chinaunix首页 | 论坛 | 博客
  • 博客访问: 474185
  • 博文数量: 145
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1139
  • 用 户 组: 普通用户
  • 注册时间: 2014-01-14 16:47
个人简介

路漫漫其修远兮,吾将上下而求索

文章分类

全部博文(145)

文章存档

2016年(10)

2015年(15)

2014年(120)

我的朋友

分类: 系统运维

2014-01-15 10:40:26

     正则表达式必知必会
一:特殊符号的作用
.  : 可以匹配任何一个单个的字符  例如:c.t可以匹配到cat和cot等之类的;
\  :  转义符,加在特殊的符号前面,字符\后面永远跟着另一个字符;
 
[和] :  匹配[和]里面的字符   例如[ns]a,就会表示出na和sa;
如果我们要匹配[],这时我们需要这么做\[ \],使用\来对[ 和 ]进行转义
 
[0-9]等价于[0123456789] A-Z匹配A到Z的所有大写字母
 
^   : 对一个字符集合进行取非匹配;
 
空白元字符
[\b]  回退(并删除)一个字符
\f   换页符   \n   换行符   \r   回车符   \t  制表符(Tab键) \v 垂直制表符
匹配数字(与非数字)
\d  : 任何一个数字字符( 等价于[0-9]) 例如 \[\d\]
\D  : 任何一个非数字字符(等价于[^0-9])
匹配字母和数字(与非字母和数字)
\w : 任何一个字母数字字符(大小写均可)或下划线字符(等价于[a-zA-Z0-9_])
\W : 任何一个非字母数字字符或非下划线字符(等价于[^a-zA-Z0-9])
 
匹配空白字符(与非空白字符)
\s : 任何一个空白字符(等价于[\f\n\r\v])
\S : 任何一个非空白字符(等价于[^\f\n\r\v])
匹配一个或多个字符
+ : 匹配一个或多个字符(至少一个;不匹配零个字符的情况)
例如: a匹配a本身,a+将匹配一个或多个连续出现的a。[0-9]匹配任意单个数字,[0-9]+将匹配一个或多个连续的数字
注意:+是一个元字符,如果需要匹配+本身,就必须使用它的转义序列\+
[\w.]+将匹配字符集合[\w.](字母数字字符、下划线和.)的一次或多次重复出现
* : 匹配零个或多个字符
+与*的区别是:+匹配一个或多个字符(或字符集合),最少要匹配一次;*匹配零个或任意多个字符(或字符集合),可以没有匹配。
?: 匹配零个或者是一个字符  例如https?://[\w./]+
为重复匹配次数设定一个精确的值;
  {3}意味着模式里的前一个字符(或字符集合)必须在原始文本里连续重复出现3次才算是一个匹配;如果只重复了两次,则不算是一个匹配。
为重复匹配次数设定一个区间
{2,4}的含义是最少重复2次、最多重复4次。
匹配“至少重复多少次”
例如:{3,}表示至少重复3次,与之等价的说法是:“必须重复3次或更多次”
*和+都是所谓的“贪婪型”元字符,它们在进行匹配时的行为模式是多多益善而不是适可而止的。
贪婪型元字符                 懒惰型元字符
*                               *?
+                               +?
{n,}                          {n,}?
单词边界
   第一种边界是由限定符\b指定的单词边界。\b用来匹配一个单词的开始或结尾
\b匹配且只匹配一个位置,不匹配任何字符,用\bcat\b匹配到的字符串的长度是3个字符(c,a,t),不是5个字符
阅读(537) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~