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

    正则表达式 RegExp 对象

    • 概念:通过特定符号组成表达式,并通过该表达式匹配字符串。
    • 好处:方便搜索、匹配字符串。
    • 缺陷:匹配、搜索速度不高。(复杂的表达式,解析效率不高)
    • 主要用于搜索、验证、匹配(或特殊环境使用)
    • 写法:/ /

    [ ]

    方括号:括号里的内容任取其一

    表达式:

    • abc查找方括号之间的任何字符。
    • ^abc 查找任何不在方括号之间的字符。
    • [0-9] 查找任何从 0 至 9 的数字。
    • [a-z] 查找任何从小写 a 到小写 z 的字符。
    • [A-Z] 查找任何从大写 A 到大写 Z 的字符。
    • (red|blue|green) 查找任何指定的选项。

    匹配次数:

    • * 星号,匹配 0-n 次
    • + 加号,匹配 1-n 次
    • ? 问号,匹配 0-1 次
    • { } 花括号,指定匹配次数; {0,6}或{,6}——0~6次;{6,}——至少6次;{6}——只能6次

      let pattern=/c[abcd]t/;
      let str='cat';
      console.log(pattern.test(str));  // true;   test关键字,方法

    完整匹配:/^...$/ ^:以^开头; $:以$结尾。

    let pattern=/^c[abcd]+t$/;
    let str='cat';
    console.log(pattern.test(str));  // true;   

    修饰符

    • i : 对大小写不敏感
    • // let pattern=/^c[abcd]+t$/i;
    • g : 全局匹配(查找所有匹配而非在找到第一个匹配后停止)。

    元字符

    有特殊含义的字符

    • . 一个点,查找单个字符,除了换行和行结束符。

    • w查找单词字符(数字、字母、下划线)

    • W 查找非单词字符

    • d 查找数字。0-9

    • D 查找非数字字符

    • s 查找空白字符(空格、换行...)

    • S 查找非空白字符

    •  匹配单词边界

    • B 匹配非单词边界

    •  查找换行符

    正则方法

    • exec:检索字符串中指定的值。返回找到的值,并确定其位置。

      let pattern=/love/g;
      let str="I love Js,I love Js,I love Js";
      console.log(pattern.test(str)); //找到第一个love
      patt.lastIndex=0; // 重置上一次输出结果
      console.log(pattern.test(str));  //加上g,找到第二个love;不加上g,还是第一个love

      lastIndex:RegExp 对象属性;一个整数,标示开始下一次匹配的字符位置。

    支持正则表达式的String对象的方法

    • split:把字符串分割为字符串数组。

      let patt=/love/g;
      let str="I love Js,I love Js,I love Js";
      console.log(str.split('')); 
      console.log(str.split(/s+)); 
    • search:检索与正则表达式相匹配的值。忽略g标记,只返回第一次匹配的值。

      let pattern=/love/g;
      let str="I love Js,I love Js,I love Js";
      console.log(str.search(patt)); 
    • match:找到一个或多个正则表达式的匹配。没有g,输出第一次匹配的值;加上g,所有匹配的值

      let pattern=/love/g;
      let str="I love Js,I love Js,I love Js";
      console.log(str.match(patt)); 
    • replace替换与正则表达式匹配的子串。加上g,全部换掉。

      let pattern=/love/g;
      let str="I love Js,I love Js,I love Js";
      console.log(str.replace(patt,'')); 

      正则表达式:多用于做验证、匹配、搜索;熟悉各种符号表达的含义,正则方法的使用;修饰符i/g使用后的变化

  • 相关阅读:
    HDU 2089 不要62
    HDU 5038 Grade(分级)
    FZU 2105 Digits Count(位数计算)
    FZU 2218 Simple String Problem(简单字符串问题)
    FZU 2221 RunningMan(跑男)
    FZU 2216 The Longest Straight(最长直道)
    FZU 2212 Super Mobile Charger(超级充电宝)
    FZU 2219 StarCraft(星际争霸)
    FZU 2213 Common Tangents(公切线)
    FZU 2215 Simple Polynomial Problem(简单多项式问题)
  • 原文地址:https://www.cnblogs.com/llying/p/7528940.html
Copyright © 2011-2022 走看看