正则表达式中,凡出现圆括号(),括号中的匹配内容就会被认为是一个分组: 根据括号从左边出现的顺序命名分组代号,分组代号由1到n(代号0通常被一些语言用来引用整个表达式匹配的结果,即使这个表达式没有分组括号,但是表达式内不能引用\0),例如: (a(b)) 以上表达式包含两个分组第1个是(a(b)),第2个是(b),很明显第一个分组包含了第二个分组的内容: 反向引入分组,其实是后面引用分组中匹配的结果,引用分组的语法是\+分组代号: (.)\1 这个表达式的含义是匹配一个任意字符,接下来再出现一个…
在常见的文本匹配场景上,经常会需要用到一些像HTML这样的嵌套标签类型的文本匹配,经过多翻折腾,拼凑出了这样的一条语句 (<([\w]+)>((?1)|[\w\s])*</\2>) 如何理解? 要解析上面的语句是如何运行的,先来了解一下PCRE的反向分组引用机制 (?n) 以括号为单元,紧贴左括号以?号开始,接着引用分组的序号数字,这是反向引用分组的语法 例如,\[([\w]+)-(?1)\]将会匹配像[9-3],[9-9]这样的结构,因为(?1)引用了第一个括号的表达式也就是([…
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表.你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码. 基本格式  from django.conf.urls im…
PHP 正则表达式(PCRE) 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串.将匹配的子串做替换或者从某个串中取出符合某个条件的子串等. 更多正则表达式的内容可参考我们的:正则表达式 - 教程. PHP 中我们可以使用 PCRE 扩展来匹配字符串的模式. PCRE 函数 函数 描述 preg_filter 执行一个正则表达式搜索和替换 preg_grep 返回匹配模式的数组条目 preg_last_error 返回最后一个PCR…
如果想把区号从匹配的电话号码中分离,可以添加括号在正则表达式中创建分组,再使用group()方法,从一个分组中获取匹配的文本 正则表达式字符串中,第一个括号是第一组,第二个括号是第二组.向group()方法传入参数1或2,可以获得匹配文本中的不同部分,传入0或者不传参数,将返回整个匹配的文本 >>> import re>>> m=re.search(r'(\d{3})-(\d{3}-\d{4})','My phone number is 012-239-4597')&g…
nginx入门与实战 网站服务 想必我们大多数人都是通过访问网站而开始接触互联网的吧.我们平时访问的网站服务 就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务. Web 网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的 请求后才会响应,最终用于提供服务程序的 Web 服务器会通过 HTTP(超文本传输协议)或 HTTPS(安全超文本传输协议)把请求的内容传送给用户. 目前能够提供 Web 网络服务的程序有 IIS.Nginx 和 Apache 等…
目录 断言 1.2.3.1 情景导入 什么是断言 断言的语法规则 零宽断言为什么叫零宽断言 零宽 前行 负向 断言DEMO 断言的基础应用和实际用处 验证不包含 验证开头包含 验证开头包含且匹配到的数据不包括断言 验证结尾包含,且匹配到的数据不包括断言 断言基础应用总体代码 不按套路出牌,帮你彻底理解断言 如果真的不理解,就死记下面的实例 断言 本文目的是讲解正则表达式之断言用法.目前互联网上有很多博文对断言讲解的并不透彻,如果您刚开始学习断言,相信此博文会对您有帮助. 本文谢绝转载,此文属原创…
设想一下这个问题,假设为了方便长串数字的阅读性,需要为其添加逗号作为分隔,需要怎么做呢? 2569836495 => 2,569,836,495 正则表达式的匹配通常是从左往右的,这导致无法使用类似[\d]{3}这样的方法去解决问题,因为数字是从右边结算的 用s/([\d]{3})/$1,/g处理上面的数字,只会得到这样的结果 2569836495 => 256,983,649,5 显然这是错误的标记方法 幸好PCRE提供了[顺序环视],和[逆序环视]功能 [顺序环视]:(?=REG),例如(…
维基百科:http://wiki.ubuntu.org.cn/Python%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97 组是通过 "(" 和 ")" 元字符来标识的. "(" 和 ")" 有很多在数学表达式中相同的意思:它们一起把在它们里面的表达式组成一组.举个例子,你可以用重复限制符,象 *, +, ?, 和…
前言:        普通人有三件东西看不懂:医生的处方,道士的鬼符,程序员得正则表达式       什么是正则表达式? 正则表达式,又称规则表达式,英文名为Regular Expression,在代码中常简写为regex.regexp或RE, 是计算机科学的一个概念. 许多程序设计语言都支持利用正则表达式进行字符串操作. 例如,在Python中就内建了一个功能强大的正则表达式接口擎. 正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的. 正则表达式通常缩写成“reg…