#正则表达式## 元字符
常见的元字符- . 匹配换行以外的任意字符
- \w 匹配字母或者数字、下划线、汉字
- \s  匹配任意的空白字符
- \d 匹配数字
- \b 匹配单词的边界
- ^ 匹配字符串的开始
- $ 匹配字符串的结尾
- \s匹配任意的空白字符
- \S 匹配任意的非空白字符##字符转义
- \\匹配 \
- \. 匹配.
- \* 匹配*
- \+ 匹配 +
- \^ 匹配^
- \? 匹配?##重复
- * 表示重复0或者多次
- + 表示重复1到多次
- ? 表示重复0或者1次
- {n}表示重复n次
- {n,}表示至少重复n次
- {n,m}表示重复n到m次
##反义
- \W匹配任意不是字母 数字下划线 汉字的字符
- \S 匹配任意不是空白符的字符
- \D 匹配任意不是数字的字符
- \B 匹配不是单词开头或结束的位置##后向引用> 使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理。默认情况下,每个分组会自动拥有一个组号,规则是:从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推。后向引用用于重复搜索前面某个分组匹配的文本###常见的分组方法
**捕捉**- **(exp)** 匹配exp 并捕获文本到自动命名的组里
-  (?<name>exp)  匹配exp 并捕获文本到名称为name的组里也可以写成(?'name'exp)
-  (?:exp) 匹配exp 不捕获匹配的文本。也不给此分组标号**零宽断言**-  (?=exp) 匹配exp前面的位置
-  (?<=exp) 匹配exp后面的位置
-  (?!exp)匹配后面跟的不是exp的位置
> 只是这样的组匹配的内容不会像前两种那样被捕获到某个组里面,也不会拥有组号**注释**- 注释  (?#comment) 这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释让人阅读

  ---雷雷给的资料

##PHP中的正则函数--PCRE
用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找及替换操作。pcre (perl compatible-兼容 regular expression)库提供的,使用`preg_`为前缀的函数
- 在pcre中,通常将模式表达式包含在 `/` 之间,如 `/apple/`
- 正则中重要的概念:元字符、转义、模式单元(重复)、反义、引用和断言  ##元字符(meta-character)
- `\A`  匹配字符串串首的原子
- `\Z`  匹配………………串尾…………
- `\b`  …………单词的边界
- 如:`/\bis/` 匹配头为is的字符串
- `/is\b/` 匹配尾为is的字符串
- `/\bis\b/`定界
- `\B`   匹配除单词边界之外的任意字符
- `\d`   匹配一个数字:等价于[0-9]
- `\D`   匹配出数字以外任何一个字符;等价于`[^0-9]
- `\w`   匹配一个英文字母,数字或下划线;等价于[0-9a-aA-Z_]
- `\W`   匹配除英文字母、数字和下划线以外任何一个字符;等价于`[^0-9a-zA-Z_]`
- `\s`   匹配一个空白字符;等价于`[\f\t\v]`
- `\S`   匹配除空白字符以外任何一个字符;等价于`[^\f\t\v]`
- `\f`   匹配一个换页符;等价于 `\x0c` 或 `\cL`
- `\t`   匹配一个制表符;等价于`\x09` 或 `\cl`
- `\v`   匹配一个垂直制表符;等价于`\x0b` 或`\ck`
- `\oNN` 匹配一个八进制数字
- `\xNN` 匹配一个十六进制数字
- `\cC`  匹配一个控制字符##模式修正符 (pattern modifiers)
模式修正符在忽略大小写、匹配多行中使用特别多,掌握了这一个修正符,往往能解决我们遇到的很多问题  - `i`  可同时匹配大小写字母
- `M`  将字符串视为多行
- `S`  将字符串视为单行,换行符做普通字符看待,使 `.` 匹配任何字符
- `X`  模式中的空白忽略不计
- `U`  匹配到最近的字符串
- `e`  将替换的字符串作为表达使用
- 如 `/apple/i` 匹配apple 或Apple等,忽略大小写   ## PCRE的模式单元
- `//1` 提取第一位的属性
- `/^\d{2} ([\W])\d{2}\\1\d{4}$` 匹配 `12-12-3432`、`98/23/1123`、`23 23 2312` 等字符串,但是却不匹配 `12/23-2344` 的格式,**这是因为模式[\W]的结果'/'已被存储**,下个位置 `\1` 引用时,其匹配模式也是字符 `/`。
- 当不需要存储匹配结果时,使用非存储模式单元 `(?: )`
- 如: `/(?:a|b|c)(D|E|F)\\1g/` 将匹配 `aEEg` 。在一些正则表达式中,使用非存储模式单元是必要的。否则,需要改变其后引用的顺序。上例还可以写成 `/(a|b|c)(C|E|F)\2g/`。  ##PCRE正则表达式函数- preg_match() & preg_match_all()  - preg_quote()- preg_split()- preg_grep()- preg_replace()## 实例//匹配action属性$str = '';$match = '';preg_match_all('/\s+action=\"(?!http:)(.*?)"\s/', $str, $match);print_r($match);正则工具虽然强大,但是从效率和编写时间上讲,可能没有explode更直接。

  

转载于:https://www.cnblogs.com/linglingyang/p/4694386.html

正则表达式 -- 个人笔记相关推荐

  1. 正则表达式 学习笔记1.3

    书接上一回: 实例五:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /& ...

  2. 正则表达式 学习笔记4.3

    下面看看逆序环视结构: public class GeneralSix { public static void main(String[] args) { String[] strings = ne ...

  3. 正则表达式 学习笔记3.4

    第一段为合法html代码,第二段为不合法html代码.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office ...

  4. 正则表达式学习笔记011--贪婪和懒惰的匹配

    正则表达式学习笔记011--贪婪和懒惰的匹配 交流群1:251572072 交流群2:170933152 1.什么是贪婪匹配 从字面上理解:贪心,不满足,有多少要多少 比如正则里也一样:.*,.+,{ ...

  5. 正则表达式学习笔记010--子表达式的认识与应用

    正则表达式学习笔记010--子表达式的认识与应用 交流群1:251572072 交流群2:170933152 子表达式: ()用2个小括号,括起来的叫做子表达式 如: \d{3,4}([\s|-]?\ ...

  6. 正则表达式学习笔记009--大括号与选择符的认识与应用

    正则表达式学习笔记009--大括号与选择符的认识与应用 交流群1:251572072 交流群2:170933152 |  选择符 {n}前面的元素字符出现了n次 {n,}前面的元素字符最少出现n次,n ...

  7. 正则表达式学习笔记008--字符组简记法2

    正则表达式学习笔记008--字符组简记法2 交流群1:251572072 交流群2:170933152 \s [\t\n\r\f]     \t制表符     \n换行符     \r回车符     ...

  8. 正则表达式学习笔记007--字符组简记法1

    正则表达式学习笔记007--字符组简记法1 交流群1:251572072 交流群2:170933152 字符组简记法 1.对于常用的字符组,正则表达式提供了相应的简记法,能够方便的表示 它们,并让我们 ...

  9. 正则表达式学习笔记006--转义符的认识与应用

    正则表达式学习笔记006--转义符的认识与应用 交流群1:251572072 交流群2:170933152 也可以自己下载: 正则表达式学习笔记006--转义符的认识与应用 http://credre ...

  10. 正则表达式学习笔记005--脱字符和美元符的认识与应用

    正则表达式学习笔记005--脱字符和美元符的认识与应用 以前写的课程都没有附上源码,很抱歉! 交流群1:251572072 交流群2:170933152 也可以自己下载: 正则表达式学习笔记005-- ...

最新文章

  1. ajax 切换列表,javascript实现列表切换效果
  2. MyBatis多数据源配置(读写分离)
  3. php l方法,ThinkPHP的L方法使用简介
  4. SpringBoot集成RabbitMQ消息队列搭建与ACK消息确认入门
  5. The freeze_support() line can be omitted
  6. 8VC Venture Cup 2016 - Final Round (Div. 2 Edition)
  7. matlab中的线性规划
  8. 行业观察(一)| 从渠道为王到数据为王——浅谈服装零售企业的数字化转型
  9. 意识与本我、自我、超我理论
  10. Scratch案例——切西瓜
  11. 电脑开机画面如何更换
  12. long long10进制转16进制代码
  13. PHP中xml转json
  14. 大数据发展必备三个条件
  15. 一文详解IT运维大会精华 网络安全等保2.0时代掌控万物互联
  16. 浩顺AC671指纹考勤机二次开发(demo)
  17. 适合三本计算机专业考研的学校,适合三本考研的学校有哪些
  18. 知+是什么,知乎知+怎么开通?
  19. 阿里云ECS服务器centos6.5安装jdk;mysql;tomcat
  20. 地磁北极移动加快,地磁模型紧急更新;微信小程序“老赖地图”上线

热门文章

  1. python中的return的返回与执行
  2. python进阶18正则表达式
  3. EM从最大似然到EM算法浅解
  4. 转行数据分析,是选Python还是R?
  5. google map flex
  6. list(链表)容器
  7. java servlet是单例吗_Servlet是单例的吗?
  8. centos安装最新的visual studio code并设置中文
  9. python导入数据库的数据怎么在qt界面里刷新_Python中使用pyqtgraph库实现数据可视化之逐点刷新波形图...
  10. mysql 函数 数字转字串_mysql中字符串和数字的互转函数