首页 > 代码库 > 正则表达式小结

正则表达式小结

正则表达式复习

1.\,反斜杠,将下一个字符标记为一个特殊字符、或一个原义字符或一个向后引用,或一个八进制转义符。

eg:\n 换行,\\ 反斜杠,\( (;

向后引用:

当加了括号后,正则表达式引擎会记录前面括号总匹配的,并存入临时缓存区中;

把正则表达式的一部分放在圆括号内可以将他们形成分组。然后可以对整个组使用一些正则操作,例如重复操作符;

所捕获的每个子匹配都按照在正则表达式中从左至右所遇到的内容存储。存储子匹配的缓存区编号从1开始,连续编号直至最大99个字表达式,每个缓存区可以使用‘\n‘访问,其中n为一个标志特定缓存区的一位或两位十进制数

php过滤正则表达式的代码

<?php

header(‘content-type:text/html;charset=utf-8‘);

$content="<table class=‘abc‘ style=‘abc‘><tr><td>adfdfgf</td></tr></table>";

$pattern1=‘/</?[^>]+>/‘;//过滤所有的html

$pattern2=‘/<([a-zA-Z]+)[^>]*>/‘;//过滤html属性

$newcontent=preg_replace(‘/<([a-zA-Z]+)[^>]*>/‘,‘<\\1>‘,$content);

echo $newcontent;

?>

2.^,匹配输入字符串的开始位置,如果设置了RegExp对象的Multuline属性,^也匹配‘\n‘或‘\r‘之后的位置

3.$,匹配输入字符串的结束位置,如果设置了RegExp对象的Multuline属性,^也匹配‘\n‘或‘\r‘之前的位置

4.*,匹配前面字表达式零次或多次;

5.+,匹配前面表达式一次或多次;

6.?,匹配前面字表达式零次或一次

7.{n},匹配前面字表达式n次

8.{n,},匹配前面子表达式至少n次;

9.{n,m},匹配前面表达式至少次,至多m次

10.?当该字符跟在任何一个其他限制符(*,+?,{n},{n,m})后,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则是尽可能多的匹配所搜索的字符串。

11..,匹配除‘\n‘之外的任何单个字符;

12.(pattern),匹配pattern并获取这一次匹配,作为向后引用使用;

13.(?:pattern),匹配pattern但不获取这一匹配,也就是说这是一个非获取匹配,不进行存储供以后使用

14.(?=pattern),正向预查,在任何匹配pattern的字符串开始处查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取以供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。但是,在“Windows(?=95|98|NT|2000)”后面加东西,就无法匹配了

15.(?!pattern),正则否定预查,在任何不匹配pattern的字符串开始处查找字符串。

16.x|y,匹配x或y。例如‘z|food‘能匹配‘z‘或‘food‘,‘(z|f)ood‘则匹配‘zood‘或‘food‘。

17.[xyz],字符集合(character class)。匹配所包含的任意一个字符。例如,‘[abc]‘可以匹配‘plain‘中的‘a‘。特殊字符仅有反斜杠\保持特殊含义,用于转义字符。其他特殊字符如星号、加号、各种括号等均作为普通字符。连字符-如果出现在字符串中间表示字符范围描述;如果出现在首位则仅作为普通字符。

18.[^xyz],排除型字符集合。匹配未列出的任意字符。

19.[a-z].字符范围,匹配指定范围内的任意字符。

20.[^a-z],排除型字符范围。匹配未列出的任意字符。

21.\b,匹配一个单词边界,也就是指单词和空格的位置。

22.\B,匹配非单词边界。

23.\cx,匹配由x指明的控制字符。例如,\cM匹配一个Control-M或回车符。x的值必须为A-Z或a-z之一。否则,将视为一个原义的‘c‘字符。

24.\d,匹配一个数字字符。

25.\D,匹配一个非数字字符。

26.\f,匹配一个换页符。

27.\n,匹配一个换行符。

28.\r,匹配一个回车符。

29.\s,匹配任何空白字符,包括空格,制表符,换页符等等。

30.\S,匹配任何非空白字符。

31.\t,匹配一个制表符。

32.\v,匹配一个垂直制表符。

33.\w,匹配包括下划线的任何单词字符,等价于[A-Za-z_];

34.\W,匹配任何非单词字符。

35.\xn,匹配n,其中n为十六进制转义值必须为确定的两个数字长。例如,“\x41”匹配“A”。

36.\num,向后引用一个子字符串,该子字符串与正则表达式的第num个用括号围起来的子表达式匹配。其中num是从1开始的正整数,其上限可是99。

37.\n,匹配一个八进制转义值或一个向后引用。

38.\un,匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。例如,\u00A9匹配版权符号()。


本文出自 “虎哥的博客” 博客,请务必保留此出处http://7613577.blog.51cto.com/7603577/1531057