zoukankan      html  css  js  c++  java
  • javascript正则表达式获取控制

    正则表达式的元字符是包含特殊含义的字符,他们有一些特殊的功能,可以控制匹配模式的方式,反斜杠后的元字符将失去其特殊含义

              单个字符

    元字符              匹配情况

    .                匹配除换行符外的任意字符

    [a-z0-9]             匹配括号中的字符集中的任意字符

    [^a-z0-9]              匹配任意不在括号中的字符集中的字符

    d                匹配数字

    D                匹配非数字同[^0-9]相同

    w                匹配字母和数字及_

    W                匹配非字母和数字及_

                    重复字符

    x?            匹配0个或者1个x

    x*            匹配0个或者任意多个x

    x+                 匹配至少1个x

    (xyz)+             匹配至少一个xyx

    x{m,n}          匹配最少m个,最多n个x

                    替代字符

    this|where|logo          匹配this或where或logo中任意一个

                                                          空白字符

                  匹配null字符

    f              匹配进制字符

                  匹配换行字符

                  匹配回车字符

                  匹配制表字符

    s              匹配空白字符,空格 制表和换行

    S              匹配非空白字符

                  锚字符

    ^              匹配行首

    $              行尾匹配

    A              只有匹配字符串开始处

                  匹配单词边界,词在[]内时无效

    B              匹配非边界单词

    G              匹配当前搜索的开始位置

                  匹配字符串结束处或行尾

    z               只匹配字符串结尾处

                 记录字符

    (string)             用于反向引用的分组(括号内的看成一个字符)

    1或$1              匹配第一个分组中的内容

    2或$2              匹配第二个分组中的内容

    3或$3              匹配第三个分组中的内容

    var box=/1(.*)9/;                 
            var str="duwei19890220@163.com";
            str.match(box);
            alert(RegExp.$1);                //表示获取模式中第一个分组对应匹配的字符串  我们这里获取的是98
    var box=/1(.*)9/;                 
            var str="duwei19890220@163.com";
            document.write(str.replace(box,"<strong>$1</strong>"));  //这里的$1是获取第一个分组中的内容98 把他加粗
    var box=/(.*)s(.*)/;                 
            var str="duwei liuhaibo";
            document.write(str.replace(box,"$2 $1"));  //位置交换

    exec返回数组的操作

    var box=/^([a-z]+)s([0-9]{4,4})$/;                //使用分组  
            var str="duwei 2018";
            //alert(box.exec(str));                            //显示 duwei 2018 duwei,2018  为什么  exec方法返回的是数组
            var a=box.exec(str);
            alert(a.length);                                //数组长度为3
            alert(a[0]);                                    //数组的第一个元素存储的是整个的字符串
            alert(a[1]);                                    //第二个下标存储的是第一个分组匹配的字符串
            alert(a[2]);
    var box=/(a?(b?(c?)))/;            //嵌套分组   从外往内分组
            var str="abc";
            var a=box.exec(str);
            alert(a[0]);                //整个匹配到的字符串abc
            alert(a[1]);                //匹配第一个分组匹配字符串 abc最外面的大括号
            alert(a[2]);                //匹配第二个分组匹配字符串 bc 中间的括号
            alert(a[3]);                //匹配第三个分组匹配字符串 c最里面的括号
  • 相关阅读:
    java 9+版本中,接口的内容总结
    发红包的案例
    java中成员变量和局部变量的区别
    分别使用面向对象和面向过程两个不同的思路编写代码,打印输出一个数组,输出数组的格式:“[10,20,30,40,50]”
    题目要求:不能使用新数组,就用原来的唯一的数组进行反转
    request.getRequestDispatcher()和response.sendRedirect()区别
    Maven是什么
    字符串中的各种方法
    数组中的各种方法
    字符串的模式匹配方法-match-search-repalce
  • 原文地址:https://www.cnblogs.com/xiaowie/p/9946446.html
Copyright © 2011-2022 走看看