Skip to content

Latest commit

 

History

History
75 lines (70 loc) · 3.88 KB

正则表达式.md

File metadata and controls

75 lines (70 loc) · 3.88 KB

正则表达式

原文地址:正则表达式

笔记

  • 被用于 RegExp 的 exec 和 test 方法, 以及 String 的 matchreplacesearch 和 split 方法
  • 在加载脚本后,正则表达式字面值提供正则表达式的编译。当正则表达式保持不变时,使用此方法可获得更好的性能
  • \
    • 非特殊字符之前的反斜杠表示下一个字符是特殊的,不能从字面上解释。例如,没有前面''的'b'通常匹配小写'b',无论它们出现在哪里。如果加了'',这个字符变成了一个特殊意义的字符,意思是匹配一个字符边界
    • 反斜杠也可以将其后的特殊字符,转义为字面量。例如,模式 /a*/ 代表会匹配 0 个或者多个 a。相反,模式 /a\*/ 将 '*' 的特殊性移除,从而可以匹配像 "a*" 这样的字符串
    • 使用 new RegExp("pattern") 的时候不要忘记将 \ 进行转义,因为 \ 在字符串里面也是一个转义字符
  • ^
    • 匹配输入的开始。如果多行标志被设置为 true,那么也匹配换行符后紧跟的位置
  • $
    • 匹配输入的结束。如果多行标示被设置为 true,那么也匹配换行符前的位置
  • *
    • 匹配前一个表达式0次或多次。等价于 {0,}
  • +
    • 匹配前面一个表达式1次或者多次。等价于 {1,}
  • ?
    • 匹配前面一个表达式0次或者1次。等价于 {0,1}
    • 如果紧跟在任何量词 *、 +、? 或 {} 的后面,将会使量词变为非贪婪的(匹配尽量少的字符),和缺省使用的贪婪模式匹配尽可能多的字符)正好相反
      • 对 "123abc" 应用 /\d+/ 将会返回 "123",如果使用 /\d+?/,那么就只会匹配到 "1"
    • .
      • (小数点)匹配除换行符之外的任何单个字符
    • (x)
      • 匹配 'x' 并且记住匹配项,括号被称为捕获括号
    • (?:x)
      • 匹配 'x' 但是不记住匹配项。这种叫作非捕获括号
    • x(?=y)
      • 匹配 'x' 仅仅当 'x' 后面跟着 'y'。这种叫做正向肯定查找
    • x(?!y)
      • 匹配 'x' 仅仅当 'x' 后面不跟着 'y'。这个叫做正向否定查找
    • x|y
      • 匹配 'x' 或者 'y'
    • {n}
      • n 是一个正整数,匹配了前面一个字符刚好发生了 n 次
    • {n,m}
      • n 和 m 都是整数。匹配前面的字符至少 n 次,最多 m 次。如果 n 或者 m 的值是0, 这个值被忽略
    • [xyz]
      • 一个字符集合。匹配方括号的中任意字符,包括转义序列。可以使用破折号(-)来指定一个字符范围。对于点(.)和星号(*)这样的特殊符号在一个字符集中没有特殊的意义。他们不必进行转义,不过转义也是起作用的
    • [^xyz]
      • 一个反向字符集。它匹配任何没有包含在方括号中的字符。可以使用破折号(-)来指定一个字符范围。任何普通字符在这里都是起作用的
    • \d
      • 匹配一个数字字符,等价于 [0-9]
    • \D
      • 匹配一个非数字字符,等价于 [^0-9]
    • \n
      • 匹配一个换行符 (U+000A)
    • \r
      • 匹配一个回车符 (U+000D)
    • \s
      • 匹配一个空白字符,包括空格、制表符、换页符和换行符
      • 等价于 [ \f\n\r\t\v\u00a0\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]
    • \S
      • 匹配一个非空白字符
      • 等价于 [^ \f\n\r\t\v\u00a0\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]
    • \w
      • 匹配一个单字字符(字母、数字或者下划线)
      • 等价于 [A-Za-z0-9_]
    • \W
      • 匹配一个非单字字符
      • 等价于 [^A-Za-z0-9_]
    • \n
      • 在正则表达式中,它返回最后的第 n 个子捕获匹配的子字符串(捕获的数目以左括号计数)
    • 正则表达式标志:
      • g
        • 全局搜索
      • i
        • 不区分大小写搜索
      • m
        • 多行搜索