js正则表达式学习笔记

js正则表达式学习笔记

正则表达式以前看书学过,针对的是js的正则表达式,其他编程语言的有些正则匹配规则是js不适用的,如:类似/(?<=exp)/这样的断言

常用代码

常用元字符

代码说明
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线或汉字
\s匹配任意的空白符
\d匹配数字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束

常用的限定符

代码说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

反义代码

代码/语法说明
\W匹配任意不是字母,数字,下划线,汉字的字符
\S匹配任意不是空白符的字符
\D匹配任意非数字的字符
\B匹配不是单词开头或结束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符

i:忽略小写
g:全局匹配
|:或运算符

分组

(...)表示一个捕获型分组,一个捕获型分组将赋值它所匹配的文本,并将其放入result数组中,并且指定编号,第一个分组的编号是1;
(?:...)表示一个非捕获型分组,如果需求允许用非捕获型分组替代捕获型分组,因为捕获会有性能上的损失

//捕获分组
var pattern = /\w{4}(\d{4})(\w{2})/;  
var result = pattern.exec("yunn0871cg");  
console.log("city code = "+result[1]+", county code = "+result[2]);  
//VM4909:3 city code = 0871, county code = cg

//非捕获分组
var pattern = /\w{4}(?:\d{4})(\w{2})/;  
var result = pattern.exec("yunn0871cg");  
console.log("city code = "+result[1]+", county code = "+result[2]);  
//VM4934:3 city code = cg, county code = undefined

\1解释
ps:(此处还是不太懂)

最长匹配和最短匹配

//最长匹配
"aabab".match(/a.*b/)
["aabab"]

//最短匹配
"aabab".match(/a.*?b/g)
["aab", "ab"]

参考文献:
正则表达式30分钟入门教程
正则表达式语言 - 快速参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值