正则表达式常用匹配例子

作者:Uncle Liu 发布于:2010-12-9 18:23 Thursday 分类:PHP+MYSQL

将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。

匹配输入字符串的开始位置。如果设置了  RegExp  对象的 Multiline  属性, 也匹配  \n ’  或  \r ’  之后的位置。    

匹配输入字符串的结束位置。如果设置了  RegExp  对象的 Multiline  属性, 也匹配  \n ’  或  \r ’  之前的位置。    

匹配前面的子表达式零次或多次。    

匹配前面的子表达式一次或多次。 等价于  {1,} 。    

匹配前面的子表达式零次或一次。 等价于  {0,1} 。    

{n} n 是一个非负整数,匹配确定的 次。

{n,} n 是一个非负整数,至少匹配 次。    

{n,m} m 和  均为非负整数,其中 n <= m 。最少匹配  次且最多匹配  次。在逗号和两个数之间不能有空格。

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

匹配除  "\n"  之外的任何单个字符。要匹配包括  \n ’  在内的任何字符,请使用象  [.\n] ’  的模式。    
(pattern) 匹配 pattern  并获取这一匹配。    

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

(?=pattern) 正向预查,在任何匹配  pattern  的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。    

(?!pattern) 负向预查,与 (?=pattern) 作用相反    

x|y 匹配  或  y 。    

[xyz] 字符集合。    

[^xyz] 负值字符集合。    

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

[^a-z] 负值字符范围,匹配任何不在指定范围内的任意字符。    

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

\B 匹配非单词边界。    

\cx 匹配由 x 指明的控制字符。    

\d 匹配一个数字字符。等价于  [0-9] 。    

\D 匹配一个非数字字符。等价于  [^0-9] 。    

\f 匹配一个换页符。等价于  \x0c  和  \cL 。    

\n 匹配一个换行符。等价于  \x0a  和  \cJ 。    

\r 匹配一个回车符。等价于  \x0d  和  \cM 。    

\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v] 。    

\S 匹配任何非空白字符。等价于  [^ \f\n\r\t\v] 。    

\t 匹配一个制表符。等价于  \x09  和  \cI 。    

\v 匹配一个垂直制表符。等价于  \x0b  和  \cK 。    

\w 匹配包括下划线的任何单词字符。等价于 [A-Za-z0-9_] 。    

\W 匹配任何非单词字符。等价于  [^A-Za-z0-9_] 。    

\xn 匹配  n ,其中  为十六进制转义值。十六进制转义值必须为确定的两个数字长。

\num 匹配  num ,其中 num 是一个正整数。对所获取的匹配的引用。    

\n 标识一个八进制转义值或一个后向引用。如果  \n  之前至少  个获取的子表达式,则  为后向引用。否则,如果  为八进制数字  (0-7) ,则  为一个八进制转义值。    

\nm 标识一个八进制转义值或一个后向引用。如果  \nm  之前至少有 is preceded by at least nm  个获取得子表达式,则  nm  为后向引用。如果  \nm  之前至少有  个获取,则  为一个后跟文字  的后向引用。如果前面的条件都不满足,若  和  均为八进制数字  (0-7) ,则  \nm  将匹配八进制转义值  nm 。    

\nml 如果  为八进制数字  (0-3) ,且  和  均为八进制数字  (0-7) ,则匹配八进制转义值  nml 。    

\un 匹配  n ,其中  是一个用四个十六进制数字表示的 Unicode 字符。

 

常用正则:



1、非负整数: ^\d+$    

2、正整数: ^[0-9]*[1-9][0-9]*$    

3、非正整数: ^((-\d+)|(0+))$    

4、负整数: ^-[0-9]*[1-9][0-9]*$    

5、整数: ^-?\d+$    

6、非负浮点数: ^\d+(\.\d+)?$    

7、正浮点数: ^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$    

8、非正浮点数: ^((-\d+\.\d+)?)|(0+(\.0+)?))$    

9、负浮点数: ^(-(( 正浮点数正则式 )))$    

10、浮点数  "^(-?\d+)(\.\d+)?$"

11、英文字符串: ^[A-Za-z]+$    

12、英文小写串: ^[a-z]+$    

13、英文大写串: ^[A-Z]+$    

14、英文字符数字串: ^[A-Za-z0-9]+$    

15、英文 + 数字 + 下划线: ^\w+$    

16、邮政编码: ^[1-9]\d{5}$

17 E-mail 地址: ^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$    

18 URL ^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$    
或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$


19、电话号码: ^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$

20、手机号码: ^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$

21、中文: ^[\u0391-\uFFE5]+$

22、双字节字符 ( 包括汉字在内 ) ^\x00-\xff

23、匹配首尾空格: (^\s*)|(\s*$) (像 vbscript 那样的 trim 函数)

24、匹配 HTML 标记: <(.*)>.*<\/\1>|<(.*) \/>    

25、匹配空行: \n[\s| ]*\r

26、提取信息中的网络链接: (h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?

27、提取信息中的邮件地址: \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

28、提取信息中的图片链接: (s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?

29、提取信息中的 IP 地址: (\d+)\.(\d+)\.(\d+)\.(\d+)

30、提取信息中的中国手机号码: (86)*0*13\d{9}

31、提取信息中的中国固定电话号码: (\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}

32、提取信息中的中国电话号码(包括移动和固定电话): (\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}

33、提取信息中的中国邮政编码: [1-9]{1}(\d+){5}

34、提取信息中的浮点数(即小数): (-?\d*)\.?\d+

35、提取信息中的任何数字 : (-?\d*)(\.\d+)?    

36 IP (\d+)\.(\d+)\.(\d+)\.(\d+)

37、电话区号: /^0\d{2,3}$/

38、腾讯 QQ 号: ^[1-9]*[1-9][0-9]*$

39、帐号 ( 字母开头,允许 5-16 字节,允许字母数字下划线 ) ^[a-zA-Z][a-zA-Z0-9_]{4,15}$

40、中文、英文、数字及下划线: ^[\u4e00-\u9fa5_a-zA-Z0-9]+$    

41、防 SQL 注 入: drop|exists|having|exec|creat|like|where|count|select|insert|update|delete|\'| \/\*|\*|\.\.\/|\.\/|\=|\%|union|into|load_file|outfile


引用地址:

评论:

兄弟
2011-12-27 16:59
文章写的不错!支持下
abercrombie outlet
2011-12-13 16:03
也支持一下,,,
梁嬷嬷
2011-11-25 16:42
的的
wigscheap
2011-10-28 17:46
博客写得很好,长见识了
Cheap UGGS
2011-09-24 08:37
俺看的不是很明白..但是谢谢分享
伟哥
2011-09-22 21:51
收藏一下,谢谢分享
网上兼职赚钱
2011-09-17 12:33
这个要学习下
收狗
2011-08-23 10:47
在做伪静态的时候学习了一下
安阳seo
2011-06-07 17:50
正则其实很头疼。不过学会还好
air max
2011-05-12 21:09
顶啊。
coach store sale
2011-04-06 14:32
不错不错,看了
allen
2011-01-10 22:31
好东西,收藏了
d
2010-12-30 04:26
很有型
天津464
2010-12-21 14:20
正在找这类的,感谢分享,先收藏了
天津464
2010-12-21 13:43
先收藏下,真的很专业
小子
2010-12-20 14:04
这,这,这。。。
ShowsCAI
2010-12-16 00:24
好吧 代码什么的都是浮云。。。
Uncle Liu
2010-12-16 01:26
@ShowsCAI:都是浮云
discounted uggs
2010-12-12 10:16
看不懂,从来没接触过,觉得很难。
Uncle Liu
2010-12-12 11:17
@discounted uggs:我也不懂
cardy uggs
2010-12-10 16:46
密密麻麻的,    -,-  你怎么还不更新文章吖,博主, 加油哇。
Uncle Liu
2010-12-10 17:48
@cardy uggs:这不是更新了吗
沈阳不孕不育
2010-12-10 16:29
看着好难哦,顶一下!!
Uncle Liu
2010-12-10 17:30
@沈阳不孕不育:你是广告机

发表评论:

Powered by emlog 沪ICP备09020591号