正则表达式

66 阅读2分钟
  1. 创建正则表达式

    • 字面量方式:/pattern/flags
    • 对象方式:new RegExp('pattern', 'flags')
  2. 正则表达式修饰符(Flags)

    • g:全局搜索。
    • i:不区分大小写。
    • m:多行模式。
    • u:Unicode 模式,正确处理大于 \uFFFF 的 Unicode 字符。
    • y:粘滞模式,匹配从上一次成功匹配的结束位置开始的字符串。
  3. 字符和元字符

    • .:匹配除换行符之外的任何单个字符。
    • ^:匹配输入字符串的开始位置。
    • $:匹配输入字符串的结束位置。
    • *:匹配前面的字符零次或多次。
    • +:匹配前面的字符一次或多次。
    • ?:匹配前面的字符零次或一次。
    • {n}:匹配确定的 n 次数。
    • {n,}:至少匹配 n 次。
    • {n,m}:最少匹配 n 次且最多 m 次。
    • []:匹配括号内的任意一个字符。
    • |:匹配两项之间的任意一项。
  4. 字符类

    • \d:匹配任何数字,等同于 [0-9]
    • \D:匹配任何非数字字符,等同于 [^0-9]
    • \w:匹配任何字母数字字符,包括下划线,等同于 [a-zA-Z0-9_]
    • \W:匹配任何非字母数字字符,等同于 [^a-zA-Z0-9_]
    • \s:匹配任何空白字符,包括空格、制表符、换页符等。
    • \S:匹配任何非空白字符。
  5. 分组和捕获

    • (pattern):捕获匹配的文本。
    • (?:pattern):非捕获组,用于分组但不捕获匹配的文本。
  6. 断言

    • (?=pattern):正向前瞻断言,确保某个位置后面跟着某个模式。
    • (?!pattern):负向前瞻断言,确保某个位置后面不跟着某个模式。
    • (?<=pattern):正向后瞻断言,确保某个位置前面是某个模式。
    • (?<!pattern):负向后瞻断言,确保某个位置前面不是某个模式。
  7. JavaScript 中的正则表达式方法

    • match():检索字符串中正则表达式的匹配。
    • replace():在字符串中搜索匹配正则表达式的部分,并将其替换。
    • search():执行搜索匹配,返回匹配项的索引。
    • split():使用正则表达式来拆分字符串。
    • test():测试字符串是否匹配正则表达式。