[量词],顾名思义就是用来匹配数量的.类似于\w,\d,[0-9]这样的元字符都只能匹配一个字符,如果要匹配多个字符就要输入此元字符多次,这样使用起来就很麻烦.所以正则表达式中使用了量词来进行[元字符]的数量的匹配,通过操作量词,可以匹配0个元字符,也可以匹配无数个元字符.在正则表达式中的量词分为三种,匹配优先量词(标准量词).忽略优先量词.占有优先量词.此文着重描述匹配优先量词(标准量词),这类量词是在所有的正则表达式工具中都支持的量词,而忽略优先量词和占有优先量词则只在一部分正则工具中支持.
前言 正则表达式使用单个字符串来描述.匹配一系列匹配某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些匹配某个模式的文本.简单说就是一个特殊的字符串去匹配一个字符串.定义了一些规则,用于匹配满足这些规则的字符串. 对于正则表达式应该很多人第一感觉就是很难,完全没有规律,看不懂. 我觉得可能有以下几个原因: 1.读不懂. 各种不同的字符组合一起,难以理解.确实,对于熟悉正则表达式的人来说,一个稍微长点的正则表达式想要理解起来,可能也要花费一定的功夫.可读性差是正则表达式的
转载自:http://blog.csdn.net/lxcnn/article/details/4756030 1 概述 贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配.非贪婪模式只被部分NFA引擎所支持. 属于贪婪模式的量词,也叫做匹配优先量词,包括: “{m,n}”.“{m,}”.“?”.“*”和“+”. 在一些使用NFA引擎的语言中,在匹配优先量词后加上“?”
这个例子出自<精通正则表达式>,做一下笔记帮助理解和记忆. 第一版 最简单的case就是考虑包含一对引号,那么写出来的表达式应该是这样的: ".*" 但是这个未免太简单了吧,会有啥问题呢?假如输入的字符串长这样结果就会出问题拉.see... Input String: "Hello" and "World" Regex: ".*" Match: "Hello" and "World&q
环视 环视匹配的最终结果就是一个位置,有四种类型的环视: (?=Expression) 顺序肯定环视,表示所在位置右侧能够匹配Expression (?!Expression) 顺序否定环视,表示所在位置右侧不能匹配Expression (?<=Expression) 逆序肯定环视,表示所在位置左侧能够匹配Expression (?<!Expression) 逆序否定环视,表示所在位置左侧不能匹配Expression 可以用以下两个正则表达式理解环视: (1)字母.数字.特殊符号全部出现,至少
文法 一个文法可以用一个四元来定义,G = {Vt,Vn,S,P} Vt:一个非空有限的符号集合,它的每个元素称为终结符号; Vn:一个非空有限的符号集合,它的每个元素称为非终结符号,并且Vt∩Vn=Φ; S∈Vn,称为文法G的开始符号; P是一个非空有限集合,它的元素称为产生式; 产生式是指,其形式为α→β,α称为产生式的左部,β称为产生式的右部,符号"→"表示"定义为",并且α.β∈(Vt∪Vn)*,α≠ε,即α.β是由终结符和非终结符组成的符号串; 开始符S必
Python自带了正则表达式引擎(内置的re模块),不过支持的特性比较单薄,以下这些特性都不支持: 固化分组 Atomic grouping 占有优先量词 Possessive quantifiers 可变长逆序环视 Variable-length lookbehind 递归匹配 Recursive patterns Matthew Barnett为Python写了一个更强大正则表达式引擎——regex模块,可以替代内置的re模块.除了上面说到的几个特性,还有很多新东西.
1 概述 贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配.非贪婪模式只被部分NFA引擎所支持. 属于贪婪模式的量词,也叫做匹配优先量词,包括: “{m,n}”.“{m,}”.“?”.“*”和“+”. 在一些使用NFA引擎的语言中,在匹配优先量词后加上“?”,即变成属于非贪婪模式的量词,也叫做忽略优先量词,包括: “{m,n}?”.“{m,}?”.“??”.“*?”和“+?”.
近来有在读<精通正则表达式>,就记录下自己的一些收获吧. 首先讲讲正则中的元字符,以及他们的优先级. 运算符 说明 \ 转义符 (), (?:), (?=), [] 括号和中括号 *, +, ?, {n}, {n,}, {n,m} 限定符 ^, $, /任何元字符.任何字符 定位点和序列 | 替换 简单讲讲常用的一些元字符吧. 1,字符组("[]") 字符组在正则中表示的是 既定范围内中的单个字符. 在字符组的内部,元字符的定义规则(及它们的意义)是不一样的.例如: ^ 在