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

     正则

    • 数据类型:
    • 基本: string number boolean null undefined
    • 引用类型: array object regExp function
    • 创建正则
      字面量创建
          正则由匹配的字符和修饰符组成
          var reg = /123/ig;
          new RegExp方式创建
          var reg1 = new RegExp('123','ig')
          var s = 'abc';
          var reg3 = new RegExp(s, 'i');
          console.log(reg3);
      修饰符
            i: 忽略大小写
            g : 全局匹配
      常用的元字符
      - d  0-9数字
      - D  非数字
      - w   数字、字母(大小写)、下划线
      - W   除了数字、字母(大小写)、下划线以外的任意字符
      - s   匹配空格或空白字符
      - S   除了空白以外的字符
      - .    除了换行的任意字符
      - .   点本身
      -    边界  单词的两边和字符串的开头和结尾都是边界
      - ^   开始
      - $   结尾
      数量
      - * 0-多次 - ? 0-1次 - + 1-多次 - {n} n次 - {n,} 至少n次 - {n,m} n-m次
      或者
      - (a|b|c) a,b,c中的一个字符 - [abc] a,b,c中的一个字符 - (abc|xyz|opq) abc或者xyz或者opq中的一组 - [a-z] 匹配小写字母中的一个 - [^a-z] 除了小写字母中以外的任意字符
     
    • 正则相关方法
      regExp1.test(string) // true、false
      regExp2.exec(string); //用正则匹配字符串中对应的字符
          var str = 'welcome to ujiuye!'
          var reg = /e/g;
          console.log(reg.lastIndex); //0 下一次匹配的开始位置
          reg.lastIndex = 2; //设置匹配的开始位置
      
          var r = reg.exec(str);
          console.log(r); //6
          console.log(reg.lastIndex); //7
      
          r = reg.exec(str);
          console.log(r); //16
      
          r = reg.exec(str);
          console.log(r); //null 
     
    • 字符串方法(正则相关):
      string.match(reg) ; 匹配字符串中符合正则表达式的字符
          var str = 'welcome to ujiu-ye!'
          var reg = /e/g;
          var r = str.match(reg); //如果正则没有修饰符g ,和调用一次exec结果一样
          console.log(r);  //['e','e','e'] //如果有修饰符,就是把所有的匹配到的字符放在数组中返回
         
          string.split(/[- ,]/); 同时用多个分割符分割字符串
          string.replace(/123/g,''); 全局替换
          string.replace(/(123)/g,'$1') 使用分组替换
          string.search(reg); 返回第一次匹配的字符的索引

    参考资料:https://www.cnblogs.com/libinqq/archive/2008/07/31/1257699.html

  • 相关阅读:
    文件操作小练习
    阶段练习1
    copy小练习
    小练习
    str 小列题
    条款50:使用自定义的new以及delete的时机会
    条款49:了解new-handle行为
    简单的说一下:tarits技法就是一种模板元编程,起可以将本来处于运行期的事拉到编译期来做,增加了运行效率。 看以非模板元编程的例子,就是前面的那个例子:
    条款47:请使用traits class表示类型信息
    条款46:需要类型转换的时候请为模板定义非成员函数
  • 原文地址:https://www.cnblogs.com/musong-out/p/11481794.html
Copyright © 2011-2022 走看看