JavaScript正则表达式——分组
标签:
JavaScript
可以将正则表达式用()分组():可以记录你匹配到的内容
\1:表示反向引用,引用第一个子表达式的内容
\2:表示第二个子表达式的内容了
\1\2\3等用在正则表达式中
$0:整个str
$1:匹配到的第一个子表达式内容
$2:匹配到的第二个子表达式的内容
$0$1$2用在replace的第二个参数中
举个
// ()可以记住你已经匹配到的东西,\1表示重复第一个分组里的内容,也就是aa形式的var reg = /(\w)\1/g; // ["aa", "bb", "cc", "dd", "dd"]// 表示相同的匹配2次,也就是一共3次var reg = /(\w)\1\1/g; // ["ddd"]// 相同字母出现次数大于等于2次的var reg = /(\w)\1+/g; // ["aa", "bb", "cc", "ddddd"]// aabb样式的 var reg = /(\w)\1(\w)\2/g; // ["aabb", "ccdd"]var str = "aabbccdddddef"; console.log(str.match(reg));
"123-mm".replace(/(\d+)-([A-Za-z]+)/g,"$2") // "mm""123-mm".replace(/(\d+)-([A-Za-z]+)/g,"$1") // "123"
$1-$9分组
这里的(\d+)表示第一个分组,对应$1
([a-zA-Z]+)表示第二个分组,对应$2
3. 反向引用
正则中的()表示一个分组,\1表示引用第一个分组一次,也就是和第一个分组内容相同才匹配
image.png
作者:椰果粒
链接:https://www.jianshu.com/p/b592d1e73a76
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦