• 正则表达式 符号记忆


    /g 全局匹配多个,/i 不区分大小写;

    /d/ 匹配数字(d from digit),

    /s/  (s from space) 空格符号:包括空格,制表符  ,换行符   和其他少数稀有字符,例如 vf 和 

    w(“w” from “word”) “单字”字符:拉丁字母或数字或下划线 _。非拉丁字母(如西里尔字母或印地文)不属于 w

    例如,dsw表示“数字”,后跟“空格字符”,后跟“单字字符”,例如 1 a

    alert( "I love HTML5!".match(/swwwwd/) ); // ' HTML5'

    反向类

    每个字符类都有一个反向类,用相同的大写字母表示。
    D 非数字; S 非空格字符 ;  W非单字字符

    点(.) 是匹配任何字符 ,

    点表示“任何字符”,而不是“缺少字符”。必须有一个与之匹配的字符

    • d —— 数字。
    • D —— 非数字。
    • s —— 空格符号,制表符,换行符。
    • S —— 除了 s 。
    • w —— 拉丁字母,数字,下划线 '_'
    • W —— 除了 w
    • . —— 任何带有 's' 标志的字符,否则为除换行符  之外的任何字符。

    字符串开始 ^ 和末尾 $

    "m" — 多行模式  字符串多行(即字符串不在同一行中间有换行符)

    词边界:

      既可以用于单词,也可以用于数字。

    转义

    如果要把特殊字符作为常规字符来使用,只需要在它前面加个反斜杠

    alert( "Chapter 5.1".match(/d.d/) ); // 5.1

    传递一个字符串(参数)给 new RegExp 时,我们需要双倍反斜杠 \,因为字符串引号会消费其中的一个

    let regStr = "\d\.\d";

    alert(regStr);// d.d (correct now)

    let regexp = new RegExp(regStr)

    alert( "Chapter 5.1".match(regexp) ); // 5.1

    集合和范围 [...]

    [eao] 意味着查找在 3 个字符 'a''e' 或者 `‘o’ 中的任意一个,非多个

    方括号也可以包含字符范围

    alert( "Exception 0xAF".match(/x[0-9A-F][0-9A-F]/g) ); // xAF

    alert( "alice15@gmail.com".match(/[^dsA-Z]/gi) ); // @  .

    在集合中不需要转义(不需要反斜杠,转义了也没问题)

    • 在开头或者结尾表示一个破折号(在这些位置该符号表示的就不是一个范围) `pattern:’-’。
    • 在不是开头的位置表示一个插入符号(在开头位置该符号表示的是排除)'^'

    量词 `+,*,?` 和 `{n}` 

    n代表数量几个;   

    +最少一个 相当于{1,} ;

     *  代表着“零个或多个”,相当于 {0,} ;

    ?代表“零个或一个”,相当于 {0,1}

    我们可以添加  来排除更多位数的数字:d{5}

    某个范围的位数:{3,5}   3-5位数字

    选择(OR)|

    我们通常用圆括号把模式中的选择部分括起来,像这样 before(XXX|YYY)after

    • gr(a|e)y 严格等同 gr[ae]y
    • gra|ey 匹配 “gra” or “ey”。
  • 相关阅读:
    人员安排问题--搜索算法的剪支方法应用
    深度优先搜索与广度有限搜索的比较
    任务调度问题-使用拟阵进行解决
    无向图的最小生成森林的拟阵解法
    拟阵的最优子集问题的贪心算法
    中国大学MOOC —— 学习笔记(三)
    中国大学MOOC —— 学习笔记(二)
    中国大学MOOC —— 学习笔记(一)
    Python DayDayUp —— 小项目实现(二)
    Python DayDayUp —— shelve模块
  • 原文地址:https://www.cnblogs.com/xiaoyaoweb/p/13672878.html
Copyright © 2020-2023  润新知