zoukankan      html  css  js  c++  java
  • 正则常用的知识点总结

    . 任意字符(除换行符以为: , ,u2028 or u2029)
    d 数字0-9
    D 非d,既不是数字0-9的字符
    w 数字0-9,或字母a-z及A-Z(大写),或者下划线
    W 非w
    s 空格符、TAB、换页符、换行符
    S 非s
    f tab回车 换行 垂直制表符 换页符
    [...] 字符范围 [a-z][0-9][A-Z0-9a-z_]
    [^...] 字符范围以外 [^a-z][^abc]
    ^ 首行 ^HI
    $ 行尾 test$
     零宽单词边界 no
    B 非
    特殊符转义:
    /^abc/.test('^abc');
    分组:
    (x)分组,并记录匹配到的字符串 /(abc)/
    表示使用分组符(x)匹配到字符串 /(abc)1/.test('abcabc'); 重复
    (?:x) 仅分组 /(?:abc)(def)1/.test('abcdef')
    x* x+ 重复次数>=0 重复次数>0 贪婪算法 abc*将匹配ab、abc、 abccc abc+ 将匹配abc、abccc
    x*? x+? 同上相反(匹配尽可能少) abc*? 将匹配ab, abc+?将匹配abc
    x? 出现0或1次
    x{n} x{n,}x{n,m} 重复n次,重复>=n次 ,重复次数x满足:n<=x<=m
    三个Flag
    global:全局
    igmoreCase:不区分大小写
    multiline:有分行跨行的时候需要跨行检索
    例子:/abc/gim.test("ABC");//true
    RegExp("abc","mgi")
    对象方法:
    /abc/.exec("abcdef");//"abc"
    /abc/.test("abcde");//true
    /abc/.toString();//"/abc/"
    var reg = /abc/;
    reg.compile("def"); //改变规则和属性
    reg.test("def");//true
    string类型与正则相关的方法
    'abcabcef'.search(/(abc)1/);//索引 0
    'aabbbbbcc'.replace(/b+?/,'1');//aa1bbbcc
    'aabbbbcc'.match(/b+/);//["bbbb"]
    'aabbbbbccbbaa'.match(/b+/g);//["bbbb","bb"]
    'aabbbbccbbaa'.split(/b+/);//["aa","cc","aa"]

    用正则表达式切分字符串比用固定的字符更灵活,请看正常的切分代码:

    'a b   c'.split(' '); // ['a', 'b', '', '', 'c']
    

    嗯,无法识别连续的空格,用正则表达式试试:

    'a b   c'.split(/s+/); // ['a', 'b', 'c']
    

    无论多少个空格都可以正常分割。加入,试试:

    'a,b, c  d'.split(/[s\,]+/); // ['a', 'b', 'c', 'd']
    

    再加入;试试:

    'a,b;; c  d'.split(/[s\,;]+/); // ['a', 'b', 'c', 'd']
  • 相关阅读:
    无线网络技术知识点
    中国高校计算机大赛—网络技术挑战赛
    实验二 软件工程个人项目
    实验一 软件工程准备
    2018年春季软件工程教学设计(初稿)
    2017-2018春季学期软件工程教学资源目录
    2017-2018春季学期软件工程教学纲要
    如何解决Android Studio解决DDMS真机/模拟器无法查看data目录问题
    GitHub的Windows客户端的使用教程
    2017面向对象程序设计(JAVA)课程总结
  • 原文地址:https://www.cnblogs.com/zj911005/p/9373074.html
Copyright © 2011-2022 走看看