美文网首页
正则的一些用法

正则的一些用法

作者: 蜗牛Coming | 来源:发表于2018-08-23 14:06 被阅读0次

首先,一些基本的:

\d 匹配一个数字,等价于[0-9]
\D 匹配一个非数字,等价于[^0-9]
\w 匹配一个单字字符(字母、数字、下划线),等价于[a-zA-Z0-9_]
\W 匹配一个非单字字符,等价于[^a-zA-Z0-9_]
.(小数点) 匹配除换行符之外的任意一个字符
? 匹配前一个表达式0次或1次,等价于{0,1}
+ 匹配前一个表达式1次或多次,等价于{1,}
* 匹配前一个表达式0次或多次,等价于{0,}
(x) 匹配‘x’并记住匹配项,()称为捕获括号

几个不常见的:

(?:x) 匹配‘x’但不记住匹配项,?:称为非捕获符号
x(?=y) 匹配‘x’仅仅当‘x’后面跟着‘y’,正向肯定查找,但不记住()里面的匹配项
x(?!y) 匹配‘x’仅仅当‘x’后面不跟着‘y’,正向否定查找,但不记住()里面的匹配项

demo:

//把str_demo转化成一个[aaa123,bbb456,ccc789,ddd129]的数组
var str_demo = '123aaa ,456bbb , 789ccc ,    129ddd';
//定义一个匹配前后空格,中间是‘,’的正则;
var pattern = /\s*,\s*/;
//利用正则的split方法将字符串按匹配的正则分割成字符串数组
var strArr = str_demo.split(pattern);
//定义一个匹配前面是数字,后面是字母的正则;
pattern = /(\d+)([a-z]+)/
var j,len;
var newArr = [];
for(j = 0,len = strArr.length; j<len; j++){
    //$1、$2分别是匹配到的第一个小括号、第二个小括号的内容
    newArr.push(strArr[j].replace(pattern,'$2$1'))
}
console.log(newArr);
//[aaa123,bbb456,ccc789,ddd129]

?:的用法

//?:的用法
var str_demo = '123aaa ,456bbb , 789ccc ,    129ddd';
//定义一个匹配前后空格,中间是‘,’的正则;
var pattern = /\s*,\s*/;
//利用正则的split方法将字符串按匹配的正则分割成字符串数组
var strArr = str_demo.split(pattern);
//定义一个匹配前面是数字,后面是字母的正则;
//给一个括号加上?:,使其不捕获第一个括号里面匹配到的内容
pattern = /(?:\d+)([a-z]+)/
var j,len;
var newArr = [];
for(j = 0,len = strArr.length; j<len; j++){
    //$1、$2分别是匹配到的第一个小括号、第二个小括号的内容
    newArr.push(strArr[j].replace(pattern,'$1'))
}
console.log(newArr); //[aaa,bbb,ccc,ddd]

\1的用法

\1 匹配的是 所获取的第1个()匹配的引用
\2 匹配的是 所获取的第2个()匹配的引用

//\1的用法
//匹配两个重复的数字的正则
var reg1 = /(\d)\1/;
// console.log(demo_n.search(reg_n))
console.log(reg1.test('88')); //true
console.log(reg1.test('89')); //false
console.log('88'.search(reg1)); //0
console.log('89'.search(reg1)); //-1
console.log(reg1.exec('88')); // ["88", "8", index: 0, input: "88", groups: undefined]
console.log(reg1.exec('89')); //null
console.log('88'.match(reg1)); //["88", "8", index: 0, input: "88", groups: undefined]
console.log('89'.match(reg1)); //null
//匹配一个数字后面两个重复的字母的正则
var reg2 = /(\d)([a-z])\2/;
console.log(reg2.test('8cc')); //true
console.log(reg2.test('8ab')); //false

相关文章

  • 正则的一些用法

    首先,一些基本的: \d 匹配一个数字,等价于[0-9]\D 匹配一个非数字,等价于[^0-9]\w 匹配...

  • Python正则表达式分组 Group

    在正则表达式介绍中,我们学习了正则表达式的基本用法。列举了一些简单的例子。在这一部分,将介绍更高级的用法,捕获分组...

  • 常用正则方法

    可以使用正则的方法 常见的用法 实际用法 用法规则 字符簇

  • 第四周打卡

    本周的主题是『正则』。下面列举一些常用的正则字符及用法。 正则中的特殊字符 大写和小写字符一般是一个补集的关系。 ...

  • 正则表达式

    用法。常用正则表达式。详细用法 //正则表达式:记录文本规则的代码 //常用的正则表达式的地方:登录,密码等格式的...

  • javascript正则表达式使用小结

    正则在很多编程语言中都有,它们的用法基本都是类似的,不同的语言可能会存在一些区别。在JavaScript中,正则也...

  • 一文学会正则表达式

    正则表达式是编程中常用的校验和过滤字符的手段,本文主要讲解 正则表达式基础、一些特殊用法和常用到的正则表达式案例。...

  • 正则学习记录

    题注:正则表达式也称为规则表达式或字符串规则表达式,此文记录正则表达式的一些基本用法,适合正则入门使用。 基本规则...

  • 正则表达式

    正则表达式的用法介绍

  • Java学习(持续更新)

    正则表达式matches用法

网友评论

      本文标题:正则的一些用法

      本文链接:https://www.haomeiwen.com/subject/whjpiftx.html