[记录] 正则表达式入门 
                                                    
                        
                    
                    
  
                    
                    基本语法
- 界定符
- 原子
- 量词
- 边界控制
- 模式单元
界定符
表示一个正则表达式的开始和结束
$pattern = '/[0-9]/';
$pattern = '#[0-9]#';
$pattern = '{[0-9]}'; // 不推荐原子
可见原子
Unicode 编码表中用键盘输出后肉眼可见的字符
1.  标点 ; ” _ ? . 等等
2.  英文字母数字 a-z, A-Z, 0-9
3.  汉字、日文、阿拉伯文等其他语言文字
4.  ∑, ∈, ∮, ≌ 等数理化公式符号
5.  其他可见字符不可见原子
Unicode 编码表中用键盘输出后肉眼不可见的字符
1.  换行符 \n
2.  回车 \r
3.  制表符 \t
4.  空格
5.  其他不可见符号元字符
原子的筛选方式
1.  | 匹配两个或者多个分支选择
2.  [] 匹配方括号中的任意一个原子
3.  [^] 匹配除方括号中的原子之外的任意字符原子的集合
1.  . 匹配除换行符之外的任意字符
2.  \d 匹配任意一个十进制数字,即 [0-9]
3.  \D 匹配任意一个非十进制数字,即 [^0-9]
4.  \s 匹配一个不可见原子,即 [\f\r\n\t\v]
5.  \S 匹配一个可见原子,即 [^\f\r\n\t\v]
6.  \w 匹配任意一个数字、字母或下划线,即 [0-9a-zA-Z_]
7.  \W 匹配任意一个非数字、字母或下划线,即 [^0-9a-zA-Z_]量词
1.  {n} 表示其前面的原子恰好出现 n 次
2.  {n,} 表示其前面的原子最少出现 n 次
3.  {n,m} 表示其前面的原子最少出现 n 次,最多出现 m 次
4.  * 匹配 0 次、1 次或者多次其之前的原子,即 {0,}
5.  + 匹配 1 次或者多次其之前的原子,即 {1,}
6.  ? 匹配 0 次或者 1 次其之前的原子,即 {0,1}边界控制
1.  ^ 匹配字符串开始的位置
2.  $ 匹配字符串结尾的位置模式单元
1.  () 匹配其中的整体为一个原子修正模式
- 
贪婪匹配:匹配结果存在歧义时取其长(人家还想要嘛) 
- 
懒惰匹配:匹配结果存在歧义时取其短(不要跟我比懒,因为我懒得跟你比) 
1.  U/u 懒惰匹配/贪婪匹配
2.  i 忽略英文字母大小写
3.  x 忽略空白
4.  s 让元字符 . 匹配包括换行符在内所有字符
5.  e 配合函数 preg_replace() 使用,可以把匹配来的字符串当作正则表达式执行常见正则表达式
1.  非空:/.+/
2.  保留两位小数:/\d+\.\d{2}$/
3.  手机号:/^1[3-9]\d{9}$/
4.  Email 地址:/^\w+(\.\w+)*@\w+(\.\w+)+$/
5.  URL 地址:/^(https?:\/\/)?(\w+\.)+[a-zA-Z]+$/
6.  IP 地址:/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
7.  中国大陆邮政编码:[1-9]\d{5}(?!\d)
8.  身份证:\d{15}|\d{18}
9.  十六进制值:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/
10. Unicode 编码中的汉字范围:/^[u4e00-u9fa5],{0,}$/
11. 中文字符:[\u4e00-\u9fa5]
12. 双字节字符(包括汉字):[^\x00-\xff]
13. 空白行:\n\s*\r
14. 首尾空白字符:/^\s|\s$/本作品采用《CC 协议》,转载必须注明作者和本文链接
                                
                                
                                    :bug: 我的小破站
                                
                            
                        
                    
                      本帖由系统于 6年前 自动加精
            
                 
           cnguu 的个人博客
 cnguu 的个人博客
         
             
             
             
             
             
             
             
           
           关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: