文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>正则表达式基础知识总结

正则表达式基础知识总结

时间:2007-12-21  来源:NKLOVERENE


     1. 正则表达式是什么
     在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。简单说:正则表达式是用于进行文本匹配的工具。
     2. 元字符(metacharacter)
     \b 是代表着单词的开头或结尾,也就是单词的分界处。\b 匹配这样的位置:它的前一个字符和后一个字符不全是(一个是,一个不是或不存在)\w
     .  匹配除了换行符以外的任意字符
     \d 匹配任意的数字(0~9)
     \s 匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等
     \w 匹配字母或数字或下划线或汉字等
     ^  匹配要用来查找的字符串的开头,除非 ^ 在方括号表达式中使用,此时它表示不接受该字符集合
     $  匹配输入字符串的结尾位置
     3. 如果你想查找元字符本身的话,就要使用转义字符\
     4. 限定符
     * 它代表的不是字符,也不是位置,而是数量——它指定*前边的内容可以连续重复出现任意次以使整个表达式得到匹配,可能是0次
     + 匹配重复1次或更多次
     ? 重复零次或一次
     {n} 重复n次
     {n,} 重复n次或更多次
     {n,m} 重复n到m次
     5. 匹配没有预定义元字符的字符集合
     只需要在中括号里列出它们就行了:
     [aeiou]就匹配任何一个英文元音字母,[.?!]匹配标点符号(.或?或!)(英文语句通常只以这三个标点结束)
     也可以轻松地指定一个字符范围,像[0-9]代表的含意与\d就是完全一致的:一位数字,同理[a-z0-9A-Z_]也完全等同于\w(如果只考虑英文的话)
     6. 反义代码
     \W 匹配任意不是字母,数字,下划线,汉字的字符
     \S 匹配任意不是空白符的字符
     \D 匹配任意非数字的字符
     \B 匹配不是单词开头或结束的位置
     [^x] 匹配除了x以外的任意字符
     [^aeiou] 匹配除了aeiou这几个字母以外的任意字符
     7. 正则表达式里的替换指的是有几种规则,如果满足其中任意一种规则都应该当成匹配,具体方法是用 | 把不同的规则分隔开
     使用替换时,顺序是很重要的。原因是匹配替换时,将会从左到右地测试每个分枝条件,如果满足了某个分枝的话,就不会去管其它的替换条件了
     8. 子表达式
     用()括起来就是一个字表达式,用法上与单个字符没有区别
     9. 后向引用
     使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理。默认情况下,每个分组会自动拥有一个组号,规则是:从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推;
     后向引用用于重复搜索前面某个分组匹配的文本。例如,\1代表分组1匹配的文本;
     也可以自己指定子表达式的组名。要指定一个子表达式的组名,请使用这样的语法:(?\w+)(或者把尖括号换成'也行:(?'Word'\w+)),这样就把\w+的组名指定为Word了。要反向引用这个分组捕获的内容,你可以使用\k
     10. ()的其他用处
     捕获:
     (exp) 匹配exp,并捕获文本到自动命名的组里
     (?exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)
     (?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号
     11. 零宽断言 与 负向零宽断言
     用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像\b,^,$那样用于指定一个位置,这个位置应该满足一定的条件(断言),因此它们也被称为零宽断言
     (?=exp) 匹配exp前面的位置 。也叫零宽度正预测先行断言,它断言自身出现的位置的后面能匹配表达式exp
     (?
操作符
描述
\
转义符
(), (?:), (?=), []
圆括号和方括号
*, +, ?, {n}, {n,}, {n,m}
限定符
^, $, \anymetacharacter
位置和顺序
|
“或”操作


相关阅读 更多 +
排行榜 更多 +
后室双重现实游戏下载

后室双重现实游戏下载

冒险解谜 下载
魔音少女模拟器下载最新版

魔音少女模拟器下载最新版

模拟经营 下载
雷曼大冒险官方版下载

雷曼大冒险官方版下载

冒险解谜 下载