正则表达式

今天看到一正则表达式:/(.*?:\/\/)(.*)/
对第一个星号后面的问号不懂。查了下发现是非贪婪模式。
干脆把相关东西整理一下。并找到一个很好的网站,还可以参考这个


正则表达式到底是什么?
按照网上的说法可以这么描述:
正则表达式就是一种模式,这种模式有一个或者多个
字符(character literals)、运算符(operators),构造(constructs)构成。


字符:

(1)character escapes,转义字符。
匹配一个字符,这个字符要么匹配一个特殊字符,要么匹配一个原义字符。
比如\t匹配的是特殊字符tab,这些特殊的字符有专门的定义。
如果一个字符不在这个定义范围内,那么匹配的就是字符本身,比如\*用来匹配星号。

(2)character classes,暂时叫字符类。
字符类匹配的是一个某类字符。英文写成character class。
字符类本身可能有多个字符表示,比如[]或者\d。
但是有一点要注意的是,这个只匹配一个字符。

(3)anchors,锚定字符。
不匹配具体的字,但是用来制定匹配的位置。
前面的匹配关心的是内容。但是很多时候需要关心在什么地方进行匹配。

构造

(4)group construts,组构造器。
匹配由多个字符组成的一组字符。
(5)alternation constructs,变换构造器。一般和Group construts放一起说。
(6)backreference constructs,反引用构造器。

数量

(7)quantifiers,数量字符。
标记用于制定前面元素的数量。这个元素可以是某个字符,某类字符,以及某一组字符。比如+字符,\b+就是制定某类字符出现的数量,

(8)substitution,替换字符。
细分的话有这八类。也有的把其中几类分到一起。
这里只写个解析时候最顶层的分类分析。


说明

quantifiers 可以用来group所以
(\d{2}){2,4}是合法的,并且能匹配1234567890的前8个字符。
(\d{2}){2,4}?是合法的,并且能匹配1234567890的前4个字符。

阅读更多
文章标签: 正则表达式
个人分类: dev
想对作者说点什么? 我来说一句

正则表达式正则表达式

2011年01月10日 15KB 下载

正则表达式

2010年05月21日 97B 下载

正则表达式入门指导.ppt

2011年04月02日 694KB 下载

正则表达式总结文档集合

2009年03月19日 370KB 下载

xml需求文档及正则表达式介绍

2011年05月20日 12.68MB 下载

正则表达式简单课程学习

2011年07月10日 12KB 下载

RegexTester 正则表达式

2018年01月12日 69KB 下载

正则指引书籍

2018年04月23日 30.62MB 下载

没有更多推荐了,返回首页

不良信息举报

正则表达式

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭