正则的几个基本概念

2016-02-19 13:47 2 1 收藏

图老师小编精心整理的正则的几个基本概念希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~

【 tulaoshi.com - Web开发 】

经常看到说正则的文章,但说的只是方法,却很少有说以下几个基本概念:

1.贪婪:+,*,?,{m,n}等默认是贪婪匹配,即尽可能多匹配,也叫最大匹配
如果后面加上?,就转化为非贪婪匹配,需要高版本支持

2.获取:默认用(x|y)是获取匹配,很多时候只是测试,不一定要求得到所匹配的数据,尤其在嵌套匹配或大数据中就要用非获取匹配(?:x|y),这样提高了效率,优化了程序。

3.消耗:默认是消耗匹配,一般在预查中是非消耗匹配。
举个例子,2003-2-8要变为2003-02-08
如果用/-(d)-/第二次匹配将从8开始,从而只替换第一个2,错误
如果用/-(d)(?=-)/则第二次匹配从第二个-开始,即不消耗字符-

4.预查:js中分为正向预查和负向预查
如上面的(?=pattern)是正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。还有(?!pattern)是负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。负向预查有时会用在对[^]的扩充,[^]只是一些字符,而?!可以使整个字符串。

5.回调:一般用在替换上,即根据不用的匹配内容返回不用的替换值,从而简化了程序,需要高版本支持

6.引用:num 对所获取的第num个匹配的引用。
例如,'(.)11' 匹配AAA型。'(.)(.)21' 匹配ABBA型。

[Ctrl+A 全选]
当然还有很多,这些都只是基本的需要掌握的

遇到正则问题,一般可用以下两种方法解决:

1.分类,即根据所有的可能列出各种情况,如2003以内的数
0 0
1-999 [1-9]d{0,2}
1000-1999 1d{3}
2000-2003 200[0-3]

所以最后的匹配就是 (0|[1-9]d{0,2}|1d{3}|200[0-3])

2.分组,即将整句分为不同的最小单元,如'、%、_成双出现
能成组的,即允许存在的,有
''
%% 如果是大于2的偶数个可细分为多个更小的2字符单元
__
[^'%_] 非以上字符

所以最后的匹配就是 ^(''|%%|__|[^'%_])*$

--------------------------------------------------------------------------------

replace + function 5.5+支持

[Ctrl+A 全选]

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

来源:https://www.tulaoshi.com/n/20160219/1605234.html

延伸阅读
前言: 在我们学习Java的过程中,把握其中的基本概念对我们的学习无论是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基础,所以有必要对其中的基本概念做以归纳,以便大家在以后的学习过程中更好的理解java的精髓,在此我总结了30条基本的概念。 Java概述: 目前Java主要应用于中间件的开发(middleware)---处理客户机于服...
一、津液的基本概念 津液,是机体一切正常水液的总称,包括各脏腑组织器官的内在体液及其正常的分泌物,如胃液、肠液和涕、泪等。津液,同气和血一样,是构成人体和维持人体生命活动的基本物质。 津和液,同属于水液,都来源于饮食,有赖于脾和胃的运化功能而生成。由于津和液在其性状、功能及其分布部位等方面均有所不同,...
标签: Web开发
原文: 作者: 从1994年开始,Web开发社区就敲响了优雅降级(Graceful Degradation)的鼓声。这个概念来自工程世界,其核心理念是给最新最强大的浏览器全套餐式的体验,而给那些不幸还在使用Netscape 4的可怜人们只留些残羹冷炙般的基本功能。毫无疑问,这发挥了作用。但是它并不很符合Tim Berners-Lee(译注:万维网之父)关于普遍可访问...
标签: Java JAVA基础
Java的白皮书为我们提出了Java语言的11个关键特性。 (1)Easy:Java的语法比C++的相对简单,另一个方面就是Java能使软件在很小的机器上运行,基础解释其和类库的支持的大小约为40kb,增加基本的标准库和线程支持的内存需要增加125kb。 (2)分布式:Java带有很强大的TCP/IP协议族的例程库,Java应用程序能够通过URL来穿过...
摄影基本概念 画幅大小会影响景深吗   首先要说,这个标题并不是很严谨。这句话摘录自摄影师Tony Northrup的讲解视频。他说现在的很多小型卡片机,标榜诸如f/2.8大光圈镜头,实际上却拍不到全画幅相机f/2.8光圈的散景效果,所以应该把等效焦距和等效光圈加入计算,以得出相应细得多的光圈值,让消费者能更方便地比较。这段影片引起了...

经验教程

351

收藏

12
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部