regex-notes

regex基础

基本字符匹配(Basic)

  • .
    匹配除换行符之外的任意单个字符。

  • [ ]
    匹配方括号内的任意一个字符。
    例如:[abc] 匹配 abc
    范围表示:[a-z] 表示所有小写字母。

  • [^ ]
    匹配不在方括号内的任意一个字符。
    例如:[^abc] 表示不是 abc 的字符。

  • |
    逻辑或。
    例如:cat|dog 匹配 catdog


字符类(Character Class)

  • \d
    匹配任意数字,等价于 [0-9]

  • \D
    匹配任意非数字字符,等价于 [^0-9]

  • \w
    匹配字母、数字、下划线,等价于 [a-zA-Z0-9_]

  • \W
    匹配非字母、数字、下划线字符

  • \s
    匹配空白字符(空格、Tab、换行等)

  • \S
    匹配非空白字符


量词(Quantifiers)

  • *
    匹配前一个元素 0 次或多次

  • +
    匹配前一个元素 1 次或多次

  • ?
    匹配前一个元素 0 次或 1 次

  • {n}
    精确匹配 n 次

  • {n,}
    至少匹配 n 次

  • {n,m}
    匹配 n 到 m 次


定位符(Anchors)

  • ^
    匹配行或字符串的开头
    示例:^Hello

  • $
    匹配行或字符串的结尾
    示例:World$

  • \b
    单词边界
    示例:\bwin\b 只匹配 win

  • \B
    非单词边界


贪婪匹配 & 非贪婪匹配

  • ab{3,}(贪婪,默认)
    尽可能多地匹配
    匹配:abbbabbbbabbbbb

  • ab{3,}?(非贪婪)
    尽可能少地匹配
    abbbb 中只匹配 abbb


修饰符(Flags)

  • i
    忽略大小写(case-insensitive)

  • m
    多行模式(^$ 匹配每一行)

  • s
    允许 . 匹配换行符

  • g
    全局匹配,匹配所有结果


分组与引用(Groups)

  • (abc)
    捕获分组,可在后续引用

    示例:

    (\d{4})-(\d{2})-(\d{2})