• 正则表达式


    [a-z] :匹配小写字母从a-z中的任一字符;
    [0-9a-zA-Z] :匹配数字从0-9,小写字母从a-z或者是大写字母从A-Z的任一字符;
    [abcd] :匹配字符abcd中的任一字符;
    [^a-z] :匹配除小写字母从a-z以外的任一字符;
    [^abcd] :匹配除abcd以外的任一字符;

    d :匹配一个数字字符,用字符簇表示[0-9];
    D :匹配一个非数字字符,也可以使用字符簇[^0-9]或[^d]来表示;
    w :匹配包括下划线的任何单词字符,用字符簇[0-9a-zA-Z_];
    W :匹配任何非单词字符,[^0-9a-zA-Z_]或[^w];
    s :匹配任何空白字符,空格、制表符、换行符都可以通过s匹配;
    S :匹配任何非空白字符,[^s];
    .:匹配除了换行符之外的任意字符,等价于[^ ];

    * 匹配前面的子表达式零次或多次,0到多,可以使用{0,}代替,即前面的字符可以有也可以没有;
    + 匹配前面的子表达式一次或多次,1到多,可以使用{1,}代替,即前面的字符至少有一个;
    ? 匹配前面的子表达式零次或一次,0或1,可以使用{0,1}代替;
    {n} 匹配确定的 n 次,如{18},连续匹配18次;
    {n,} 至少匹配n 次,如{1,},代表最少匹配1次;
    {n,m} 最少匹配 n 次且最多匹配 m 次,如{1,7}代表最少匹配1最多匹配7次;

    ^ 匹配输入字符串的开始位置;
    $ 匹配输入字符串的结束位置;
     匹配一个单词边界(字符串开头、结尾、空格、逗号、点号等符号);
    B 匹配非单词边界

    :表示转义;
    |:表示或;

    元字符  1~9:用来表示前面以匹配的字符或分组的一个引用,和$1~$9一样;

    ()的意义

    限定量词作用的范围:

    var reg3 = /(Matz)*/; // 0或多个Matz

    限定多选结构的范围:

    var reg = /(Matz|Eich)/

    分组捕获:

    var reg1 = /(d{3}) (d{3})/
    var str = '111 222'
    str.replace(reg1, '$2 $1') // => '222 111' , 注意这里的$2,$1,存放了匹配的字符串
     

    为反向引用捕获文本

    var reg = /(boy)1/   // 相当于 /boyboy/
    reg.test('boyboy')   // => true
  • 相关阅读:
    leetcode@ [68] Text Justification (String Manipulation)
    leetcode@ [205] Isomorphic Strings
    leetcode@ [274/275] H-Index & H-Index II (Binary Search & Array)
    leetcode@ [174] Dungeon Game (Dynamic Programming)
    Java 开发@ JDBC链接SQLServer2012
    leetcode@ [97] Interleaving Strings
    leetcode@ [131/132] Palindrome Partitioning & Palindrome Partitioning II
    leetcode@ [263/264] Ugly Numbers & Ugly Number II
    py-day1-1 python的基本运算符和语句
    py-day1 pycharm 的安装 以及部分设置
  • 原文地址:https://www.cnblogs.com/xjy20170907/p/12732711.html
Copyright © 2020-2023  润新知