PHP正则的学习笔记

12 3 月, 2013 Categories: Open, 后端, 技术, 知识原野

  8     元字符
  9         代码    说明
10         .        匹配除换行符以外的任意字符
11         \d        匹配数字 [表示数字 0-9]
12         \D        匹配除数字意外的任意字符 [\d的反义]
13         \w        匹配字母或数字或下划线或汉字 [表示数字、字母、下划线、汉字 0-9 a-z A-Z]
14         \s        匹配任意的空白符 [表示任意的空白符:空格 ,制表符\t,换行符\n,回车\r,分页\f,垂直制表\v,中文全角空格等]
15         \S        匹配所有的非空白字符 [\s的反义]
16         \b        匹配单词的开始或结束 [匹配单个单词]
17         ^        匹配字符串的开始 [用来匹配要查找字符串的开头 所有的字符都用于比较]
18         $        匹配字符串的结束 [和\b、^ 类似,区别在于 $ 为结尾处 所有的字符都用于比较]
19     正则 模式修正符
20         特点:多个模式修正符可以放在一块使用
21         m    整个字符串按多行来进行匹配。可以理解为将字符串里符合的内容全部匹配出来
22         i    不区分大小写模式的匹配
23         x    忽略掉匹配表达式里[正则表达式]的空格
24         U    匹配最近的字符串,禁止贪婪匹配
25         A    强制从^字符串开始算起,必须配合^使用
26         D    只匹配到$符号的位置处 设置了m就没用了
27         e    把替换字符串当成一个表达式使用。类似eval()函数
28    
29     限定字符
30         代码    说明
31         *        重复零次或多次 [任意次数]
32         +        重复一次或多次 [至少会出现一次]
33         ?        重复零次或一次 [可能会出现一次]
34         {n}        重复 n 次
35         {n, }    重复 n 次或者更多次 [重复n次以上:包括n次] {TIP:貌似达不到预期}
36         {n,m}    重复 n 到 m 次
37    
38     分歧条件
39         |        或 [从左往右检测。如果左边的规则符合,右边的规则将不会去匹配]
40    
41     分组
42        
43 
44     后向引用:
45          捕获:
46              (exp)    匹配exp字符串,并自动分配组号
47              (?<name>exp)    匹配exp字符串,并分配到组号为name的分组里
48              (?:exp)    不匹配exp字符串,并且也不分配组号
49          零宽断言(字符串分割匹配?):
50              (?=exp)        匹配以exp结尾的字符,匹配结果不包括exp
51              (?<=exp)    匹配一exp开头的字符,匹配结果同样不包括exp
52          负向零宽断言(可以看做 ‘[^exp]’ 的反义)
53              (?!exp)        某字符串后边不是exp的
54              (?<!exp)    某字符串前边不是exp的
55          注释:(?#comment)    注释,给人看的
56     
57      贪婪与懒惰:
58          贪婪可以理解为尽可能多的匹配重复的字符
59          懒惰可以理解为尽可能少的匹配重复的字符(尽可能少?搞不明白)
60              示例语法:
61                  *?、+?、??、{n,m}?、{n,}?
62                 
63     EXP:
64         \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} 匹配简单IP

Tags: , ,
尚无评论.

留言回复