PHP正则的学习笔记
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