正则表达式就是一个用来描述字符模式的对象。它被用来在文本中执行模式匹配(pattern-matching)以及”查找-替换”(search-and-replace)的任务。javascript中正则的风格类似Perl中正则的风格。
var reg = new RegExp(pattern,modifiers);
或
var reg = /pattern/modifiers;
modifiers包括
/hEllO/ig
/e/.test('The best things in life are free'); //true
/e/.exec('The best things in life are free'); // ["e"]
在字符串方法中,有match
方法,与exec
类似。如
'The best things in life are free'.match(/e/); //["e"]
正则表达式中的元字符是用来替代一类具有相同属性的字符的特殊字符,它也可以被称为字符类(character class)。
进行分组。好比email地址,我们就可以将它分为
'iamjack007@gmail.com'.replace(/^(\w*)(jack)(\w*)@gmail\.com$/, '$1joel$3@gmail.com'); //"iamjoel007@gmail.com"
这种类似于模块化的思想,不仅使我们一次可以专注于查找其中的一个小部分,也可以让我们在后面可以轻松的替换其中的某个部分,而不需要纠结于“牵一发而动全身”的痛苦。
用于查找某个范围内的字符
匹配多个。如匹配3个数字可用正则/\d{3}/
。
默认正则匹配是贪婪模式的,即前面的正则匹配尽可能多的。如
/(\d+)(\d+)/.exec('12345');//结果["12345", "1234", "5"]
开启非贪婪模式,量词后面加?
如
/(\d+?)(\d+)/.exec('12345');//结果["12345", "1", "2345"]
更详细的的解释,点这里
在括号内容以?:
开头。如:
/(?:\d+)\d+/.exec('123');// 结果 ["123"]
Lookaround 是 向前匹配(Lookahead) 和 向后匹配(Lookbehind) 的统称。 向前匹配
包括向前正向匹配(Positive Lookahead)和向前负向匹配(Negative Lookahead),语法是
?=
和?!
。 前正向匹配:匹配任何其后紧接指定字符串 n 的字符串。 向前负向匹配:匹配任何其后没有紧接指定字符串 n 的字符串。
类似的还有向后匹配。 在javascript目前只能使用 Lookahead,还无法使用 Lookbehind。
Lookaround 参考教程:http://www.regular-expressions.info/lookaround.html
xregexp特性
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有