正则表达式
作用:
1,分割
2,匹配
3,查找
4,替换
一个正则表达式至少包含一个原子
正则表达式就是一个字符串
什么时候使用正则?
1,表单匹配
2,URl的重写,路由重写
3,小偷采集
如何使用正则表达PHP
PCRE库正则表达式库,大多数语言都在使用,通用
POSIX库
正则表达式的语法规则和组成部分
1,定界符
两个正斜线//,用户把需要匹配的模式放在定界符之间即可
除了字母,数字,斜线\之外的任何字符都可以作为定界符
# | !也是可以当做定界符的
2,原子
原子是正则表达式最基本的组成单元
1,普通字符作为原子    如a-z,A-Z 0-9等
2,一些特殊字符和转义后的元字符作为原子
如,索引的标点符号,但语句特殊意义的符号需要转义后才能作为原子,
如:\*  \+  \.  等
3,一些非打印字符作为原子  如\f \n \r \t  \v  \cx
4,使用通用字符类型作为原子,如 \d \D \w \W \s  \S

5, 自定义原子表([])作为原子  如'/[apj]sp/'  '/[^apj]sp/'

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>正则是匹配</title>
</head>
<body><form action=""><input type="text" name="zz"><input type="submit" value="正则表达式匹配"></form></body>
</html><?php
header("Content-type: text/html; charset=utf-8"); // $pattern="/abc/";
// //如果匹配的到返回1,匹配不到返回0
// //=======================原子===================//// $pattern="/abc/";            //普通的原子
// $patten="/\./";               //特殊的原子需要反斜线的转义
// $pattern="/\n/";          //匹配非打印字符// /*=============6种通用原子开始===============*/// $pattern="/\d/";              //匹配任意一个数字
// $pattern="/\D/";              //陪陪除了数字之外的任意字符
// $pattern="/\w/";              //匹配数字,大小写字母,下划线
// $pattern="/\W/";              //匹配除了数字,字母下划线的任意字符
// $pattern="/\s/";              //匹配空白字符
// $pattern="/\S/";              //匹配除了空白符以外的任意字符
// /*=============6种通用原子结束===============*/// /*=============15种元字符开始===============*///$pattern="/go*gle/";             //*代表匹配前面的原子0次,1次或者多次
//$pattern="/go+gle/";          //+代表匹配前面的原则至少一次或者多次
//$pattern="/go?gle/";           //?智能匹配前面的原子0次或1次
//$pattern="/./";                //.匹配除了换行符以外的任意一个字符//$pattern="/a|b/";               //或者匹配,匹配a或者b
//$pattern="/go{3}gle/";         //{n}匹配n次,可以匹配前面的n次原子,例如gooole可以匹配,如果goooogle是不能匹配的
//$pattern="/go{3,}gle/";        //{n,}可以匹配上面的原子大于n的
//$pattern="/go{1,3}gle/";       //{n,}可以匹配上面的原子大于n的//$pattern="/^我们是好人/";     //^符号必须是从头开始,否则全文有也是输出错误,不加^的话默认是全文匹配,
//$pattern="/我们是好人$/";     //$ 必须以我们是好人结尾
//$pattern="/^我们是好人$/";  //开头^和$结尾,必须是全部匹配,原子相等
//$pattern="/^我们是.*好人$/";    //开头^和$结尾,中间可以是任意的字符
//$pattern="/\bis/";             // \b是必须以每个单词是is开头
//$pattern="/is\b/";         //必须是以is结尾
//$pattern="/\bis\b/";           //必须是以is开头和结尾
//$pattern="/\Bis/";             //is必须不能开头
//$pattern="/is\B/";             //不能以is结尾//$pattern="/[abc]/";           //相当于a或b或c,用户输入a或b或c都可以匹配
//$pattern="/[^abc]/";           //除了a,b,c都可以匹配//$pattern="/ab|cd/";            //可以匹配ab或者cd,相当于|
//$pattern="/ab|cd:/";           //可以匹配到ab或者cd:
//$pattern="/(ab|cd):/";     //可以匹配到ab:或者是cd: ,后向引用或者反向引用//$pattern="/<b>.*</b>/";        //匹配所有的<b>所有的内容</b>,这是贪婪模式
//      贪婪模式,第一个<b>到最后一个</b>的所有内容,包含<b>之间的所有的<b></b></b>
//$pattern="/<b>.*?<\/b>/";          //.*?取消贪婪模式,输出第一个<b></b>标签之间的内容
// $str="<b>hao</b>are you<b></b>";//$pattern="/[.]/";    //单纯的.没有其他含义
//$pattern="/[.*]/"; //里面的.*等特殊字符会失去原有的意义,只要是带有.或*的字符串都可以匹配成功//匹配中文 $pattern="/[^x00-xff]/";
// /*=============15种元字符结束===============*/// /*=============模式修正符===============*/
// $pattern="/[a-z]/i";//可以匹配a-z的大小写都可以
//$pattern="/ab/i";//可以匹配ab的大小写都可以
//$pattern="/^ab/m"; //可以在每一行开始匹配,是否ab开头,^是以什么开头,多行匹配
//类似$str="a\nb";//$pattern="/./s";//.匹配除了换行符以外的任意一个字符,s是修正了.的换行符//$pattern="/a b c/x";// 模式中的空白忽略不计,除非他已经转义,输入abc是可以匹配成功的,但是a b c匹配不成功
//在正则表达式中最后添加e,e是eval()的缩写
//$pattern="/<b>.*?<\/b>/u"  //U是贪婪模式,备注:.*?+U是取消取消贪婪模式=贪婪模式//$pattern="/abc$/";//默认情况下,是匹配以abc结尾的字符串,但是如果
//$str="dwedwedewabc\n";这样也是会匹配成功的,因为\n是换行符
//$pattern="/abc$/D"; 加D是更加严谨,换行的话直接报错的
// /*=============模式修正符结束===============*///  /*=============正则式优化方面===============*/
//例如: ?:http|https|ftp 这样的话在生成的数组会没有这一项
//      减少内存占用
//
//在字符串中运行php代码:
//在正则表达式中最后添加e,e是eval()的缩写
//例如$pattern="/http:\/\/\w+\.\w+\.(com|cn)/e";
//然后在preg_replace()中更改
//$str=preg_replace($pattern,'\'<a href="$0">\'.strtoupper("$0").\'</a>\'', $str);
//上面的示例是将需要替换的值自动变成大写
//  /*=============正则式优化方面结束============*//**************preg_match函数开始*******///preg_match($pattern,$str,$arr);//执行一次返回一次匹配结果//需要遍历出结果
/**************preg_match函数结束*******//**************preg_match_all函数开始*******///preg_match_all($pattern,$str,$arr);//返回一个数组//可以将全部的匹配结果匹配出来//如果这是打印var_dump($arr)会输出匹配后的数组//如果这是打印var_dump($arr[0])会输出匹配后的内容
/**************preg_match_all函数结束*******//**************preg_replace函数开始,推荐使用,重要!!*******/
//preg_replace($pattern,'替换内容',$arr); //返回直接替换后字符串
//(反向)后向引用就是将之前查询出的内容在preg_replace()的第二个函数直接引用
//因为第二个函数加载替换内容,可以直接放入$0或者\\0
//$0和\\0是根据正则式匹配前置出来的内容
//$0和\\0其实是数组,可以自己打印一下
/**************preg_replace结束******************************///另外的正则函数
//preg_grep
//preg_split$str=$_GET['zz']; //测试接收if(preg_match($pattern,$str,$arr)){echo "<font color='green'>恭喜你,匹配成功</font><br/>";echo "<pre>";var_dump($arr);echo "</pre>";
}else{echo "<font color='red'>没有匹配到</font>";}

PHP正则表达式基础必须掌握相关推荐

  1. 前端学PHP之正则表达式基础语法

    前面的话 正则表达式是用于描述字符排列和匹配模式的一种语法规则.它主要用于字符串的模式分割.匹配.查找及替换操作.在PHP中,正则表达式一般是由正规字符和一些特殊字符(类似于通配符)联合构成的一个文本 ...

  2. 万物之始正则表达式全解析三部曲(上篇)-正则表达式基础知识及语法

    前言 各位小伙伴大家好,接下来几天时间,我会从多个角度对正则表达式进行系统阐述,让你了解正则表达式的前世今生. 以下是博主整理的Linux知识专栏,喜欢的小伙伴可根据自己的需求自行订阅. Linux疑 ...

  3. php 正则 菜鸟,PHP正则表达式基础入门

    思维导图 介绍 正则表达式,大家在开发中应该是经常用到,现在很多开发语言都有正则表达式的应用,比如JavaScript.Java..Net.PHP 等,我今天就把我对正则表达式的理解跟大家唠唠,不当之 ...

  4. JavaScript正则表达式-基础入门

    JavaScript正则表达式-基础入门 字符类,如 /w/ 为匹配任何ASCII字符组成的字符 重复, 如 /w{1,3}/ 为匹配一到三个单词 选择.分组和引用 指定匹配位置 修饰符 直接量字符 ...

  5. python正则匹配找到所有的浮点数_Python随笔17:Python正则表达式基础(4):贪婪匹配和最小匹配...

    Python正则表达式 贪婪匹配/最小匹配 Re库默认采用贪婪匹配,即匹配最长的子字符串.在量词后面加一个"?",即可由贪婪匹配化为最小匹配. '*'用于将前面的模式匹配0次或多次 ...

  6. 1023day5:class类属性方法、每次执行类属性+1、内建模块、时间装饰器wrapper、面向对象__slots__方法:限制类的属性等基础知识、正则表达式基础知识、多态鸭子类型

    文章目录 一.类class 1.Python类class 属性 方法 2.类的构造方法__init__() 3.每次执行一次类的属性+1 二.模块 1.内建模块 2.第三方模块 3.定义自己的模块 三 ...

  7. 精通正则表达式笔记一---正则表达式基础概念[ ],[^ ],.,^,$,\<,\>,|,(),-

    学习过程中,可以到这篇文章推荐的网站进行正则表达式的练习.点击这里 正则表达式是一种思想--各种工具以各种方式来实现它.如果理解了正则表达式的基本思想,掌握就是易如反掌的事情. 弄明白"如何 ...

  8. 【JS】JavaScript正则表达式基础

    目录 一.正则表达式基础 二.JS字符串使用正则表达式 (1).新建正则表达式对象 (2).方法 (3).使用 三.Regexper 正则表达式在几乎所有语言中都可以使用,无论是前端的JavaScri ...

  9. 正则表达式基础 和 C#常用正则表达式 [转]

    正则表达式基础知识 原文引用地址: http://fineboy.cnblogs.com/archive/2005/09/08/232410.html 一个正则表达式就是由普通字符(例如字符 a 到 ...

  10. python 正则表达式取反,python正则取反_Python正则表达式-基础

    Python正则表达式-基础 python使用正则,需要先引入re模块 import re 匹配符 单个字符表达式 含义 [0-9] 0123456789任意之一 [a-z] 小写字母任意之一 [A- ...

最新文章

  1. akaze特征匹配怎么去掉不合适的点_SIFT特征点
  2. python 双边滤波与高斯滤波
  3. PAT1057 数零壹 (20 分)
  4. Supervisor 守护 dotnetcore 程序
  5. SqlServer Split功能函数
  6. innodb 悲观锁 乐观锁_mysql乐观锁、悲观锁、共享锁、排它锁、行锁、表锁
  7. 华为旗下首款弹出式前置摄像头新机发布:或归属荣耀旗下...
  8. 类的加载过程(来一个通俗易懂的理解)
  9. 国联安 德盛 新基金 申购免手续费 产品好 利润高
  10. 软件工程期中作业-阅读和提问
  11. latext配置 vscode_VScode 配置为 LaTeX IDE
  12. 解除百度网盘下载限制的办法
  13. R语言可视化——熵曲线
  14. 开机显示被调用的对象已与其客户端断开连接,解决方案亲测有效
  15. 第 270 场力扣周赛
  16. Python win32com初步实现将批量的Word文件信息统计写入同一Excel表格中
  17. [Java] 枚举类型
  18. \反斜杠“\”的几个用法!
  19. 笔记本电脑打开后不显示桌面_70后、80后、90后、00后……不一样的夏天打开方式,满满回忆!| 特别关注...
  20. python基础函数大全pdf,python函数大全及使用

热门文章

  1. 请解释什么是事件代理
  2. Prince和学生们2
  3. 有道翻译爬虫 js逆向
  4. socket网络通信实现与优化
  5. JAVA第五课:正则表达式
  6. Android JNI:lame库的编译及使用
  7. JAVA设计模式-11-代理模式(动态)(一)
  8. 阿兹后来明白了,其实别人没有我们想象中的那么关注我们
  9. LTE中RB和RE、REG、CCE的定义
  10. 页面视觉稳定性之优化CLS