加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式

发布时间:2020-12-13 22:20:52 所属栏目:百科 来源:网络整理
导读:今天看到一正则表达式: /(.*?://)(.*)/ 对第一个星号后面的问号不懂。查了下发现是非贪婪模式。 干脆把相关东西整理一下。并找到一个很好的网站,还可以参考这个。 正则表达式到底是什么? 按照网上的说法可以这么描述: 正则表达式就是一种模式,这种模

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


正则表达式到底是什么?
按照网上的说法可以这么描述:
正则表达式就是一种模式,这种模式有一个或者多个
字符(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个字符。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读