zoukankan      html  css  js  c++  java
  • 正则表达式

      正则表达式快忘完了,复习以下。

      正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
    给定一个正则表达式和另一个字符串,我们可以达到如下的目的:
      1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
      2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
      3. 替换

      正则表达式规则
      元字符
    . 匹配任何单个字符,除了换行
    d 数字 D 非数字
    w 数字 字母 下划线 W 非
    s 空白 S 非空白
    换行
    制表符


      范围-- 匹配的是一个字符
    [0-9] [0123] [a-z] [A-Z] 匹配的是一个字符
     | 或者 w|d
    量词 -只修饰一个字符
    a+ 1个或多个a
    a? 1个或0个a
    a* 0个或多个a
    var str = "aabbccddeeff";
    var regRex = /aa*b/;
    console.log(regRex.test(str));

    a{x} x个n
    a{x,} 至少x个a
    a{x,y} x-y个a

      开始结束

    ^a 以a开始
    a$ 以a结束
    () 看成一个整体

       匹配汉字
    [u4e00-u9fa5]
    var str = "中华人民共和国";
    var regRex = /[u4e00-u9fa5]{7}/;
    console.log(regRex.test(str));

      参数
    i 忽略大小写
    g 全局匹配

       验证电子邮箱
    ^w+@w+.w+(.w+)?$/
       验证URL
    /^w+(s)?://(w+.)+w+(/(w+)?(.w+)?)*$/
      替换replace
     所有的逗号替换成句号abc,efg,123,abc,123,a
      修改成绩,全改成100分
    var jsonStr = '[{"name":"张三",score:80},{"name":"张三",score:90},{"name":"张三",score:81}]';
      把, , . 和。都改成 。
    var str = "“你饿了,调我们的粮进京。你渴了.调我们的水进京。高考了,你特么想尽千方百计不让我们的孩子进京。为什么?!” 我们呼吁:全国一张卷,一个录取线!愿赌服输!最近高考方案闹得沸沸扬扬,其实大家就是要的公平竞争!同样都是孩子,同样的国家,同样的教育!为何不同的待遇?";
      去掉前后空格,封装成函数

      正则提取 match返回数组
       提取工资
    var str = "张三:1000,李四:5000,王五:8000。";
       提取email地址
    var str = "123123@xx.com,fangfang@valuedopinions.cn 286669312@qq.com 2、emailenglish@emailenglish.englishtown.com 286669312@qq.com...";


      分组提取
    提取email中的每一部分
    var str = "123123@xx.com";
    var reg = /(w+)@(w+).(w+)(.w+)?/;

    var array = str.match(reg);
    //获取分组的数据 ()是分组
    console.log(RegExp.$1);
    console.log(RegExp.$2);
    console.log(RegExp.$3);
    分组练习
    var str = "5=a, 6=b, 7=c";
    str = str.replace(/(d)=(w)/g, "$2====$1");
    console.log(str);
      exec
    exec 只匹配第一项,可以使用分组匹配 加/g 无效
    如果要匹配多项 使用str.match() 结合正则的全局模式 /g


       正则相关的方法
    正则对象的 test exec
    字符串的 replace search match split


      贪婪模式 非贪婪模式

    <.+> 默认是贪婪模式
    <.+?> 非贪婪模式

  • 相关阅读:
    iOS exit(0); 直接退出程序
    友盟推送简单调用
    KxMenu下拉菜单
    打开相册另类写法
    简洁调用字号
    十六进制颜色宏
    Swift定义单例
    不要在初始化方法和dealloc方法中使用Accessor Methods
    copyin函数
    c语言中的赋值
  • 原文地址:https://www.cnblogs.com/bridge7839/p/5743056.html
Copyright © 2011-2022 走看看