一、预定义模式
预定义模式指的是某些常见模式的简写方式,简单说明如下:
\d: 匹配0-9的任一数字,相当于[0-9]
\D:匹配所有的0-9以外的字符,相当于[^0-9]
\w:匹配任意的字母、数字和下划线,相当于[A-Za-z0-9]
\W:除所有字母、数字和下划线
\s:匹配空格(包括制表符、空格符、断行符等)
\S:匹配非空格的字符,相当于[^\t\r\n\v\f]
\b:匹配词的边界
\B:匹配非词的边界,即在词的内部。
通常,正则表达式遇到换行符(\n)就会停止匹配,这时使用/s字符类,就能包括换行符。
也可使用非捕获组
二、重复类
模式的精确匹配次数,使用大括号({})表示。n表示恰好重复n次,{n,}表示至少重复n次,{n,m}表示重复不少于n次,不多于m次。
/lo{2}k/.test('look') //true
/lo{2,5}k/.test(looook) //true
上面代码中,第一个模式指定o连续出现两次,第二个模式指定o连续出现2~5次
三、量词字符
量词用来设定某个模式出现的次数,具体说明如下:
?:表示某个模式出现0次或1次,等同于{0,1}
*:表示某个模式出现0次或多次,等同于{0,}
+:表示某个模式出现1次或多次,等同于{1,}
三:贪婪模式
var s='aaa';
s.match(/a+/) //["aaa"]
之前二部分介绍的3个量词字符,在默认情况下都是最大可能匹配,即匹配到下一个字符不满足匹配规则为止,这被称为贪婪模式。
如果想将贪婪模式改为非贪婪模式,可以在量词符后面加一个问号
var s=‘aaa’;
s.match(/a+?/) //["a"]
除了非贪婪模式的加号,还有非贪婪模式的星号
*?:表示某个模式出现0次或多次,匹配时采用非贪婪模式。
+?:表示某个模式出现1次或多次
四、修饰字符
修饰字符(Modifier)表示模式的附加规则,放在正则匹配模式的最尾部。修饰符可以单个使用,也可以多个一起使用。例如:
//单个修饰符
var regex=/test/i;
//多个修饰符
var regex=/test/ig;
1.g修饰符
在默认情况下,第一次匹配成功后,正则表达式对象就停止了向下匹配。g修饰符表示全局匹配,加上它以后,正则表达式对象将匹配全部符合条件的结果,主要用于搜索和替换。例如:
2.i修饰符
在默认情况下,正则表达式对象区分字母的大小写,加上i修饰符以后表示忽略大小写
3.m修饰符
m修饰符表示多行模式,会修改^和$的行为。默认情况下,^和$匹配字符串的开始处和结尾处,加上m修饰符后,^和$还会匹配行首和行尾,即^和$会识别换行符(\n)
讲到这边呢 都是比较简单的。接下来会讨论比较复杂的正则表达式。。敬请期待
标签:字符,匹配,正则表达式,修饰符,模式,初识,贪婪 来源: https://www.cnblogs.com/yourdid/p/11878502.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。