正则表达式是一种强大的文本匹配工具,它用于检索、替换那些符合某种模式(规则)的文本。

基本匹配

  • 文字:最简单的正则表达式是普通的字符,如 ab1 等,它们会匹配文本中的相应字符。

特殊字符

  • .:匹配除换行符以外的任意单个字符。例如,a.b 可以匹配 acbaaba2b 等。
  • ^:匹配行的开头。例如,^a 会匹配以 a 开头的行。
  • $:匹配行的结尾。例如,a$ 会匹配以 a 结尾的行。
  • [ ]:匹配方括号内的任意字符。例如,[abc] 会匹配 ab、或 c
  • -:在方括号内使用时,表示字符范围。例如,[a-z] 匹配任何小写字母。
  • [^ ]:匹配不在方括号内的任意字符。例如,[^abc] 会匹配除 abc 之外的任意字符。

重复

  • *:匹配前面的字符零次或多次。例如,a* 会匹配 ''aaaaaa 等。
  • +:匹配前面的字符一次或多次。例如,a+ 会匹配 aaaaaa 等,但不会匹配 ''
  • ?:匹配前面的字符零次或一次。例如,a? 会匹配 ''a
  • {n}:匹配前面的字符恰好 n 次。例如,a{3} 会匹配 aaa
  • {n,}:匹配前面的字符至少 n 次。例如,a{2,} 会匹配 aaaaa 等。
  • {n,m}:匹配前面的字符至少 n 次,但不超过 m 次。例如,a{2,4} 会匹配 aaaaaaaaa

特殊字符类

  • \d:匹配任何数字,等价于 [0-9]
  • \w:匹配任何字母数字字符,等价于 [a-zA-Z0-9_]
  • \s:匹配任何空白字符,包括空格、制表符、换行符等。

分组和引用

  • ( ):将括号内的表达式定义为“组”(group),并按照顺序编号。可以使用 \数字 引用这些组。

或操作

  • |:匹配前后任意一个表达式。例如,a|b 会匹配 ab

实例应用

假设我们想匹配一个简单的日期格式 yyyy-mm-dd

\d{4}-\d{2}-\d{2}
  • \d{4} 匹配四位数字,表示年份。
  • - 是字面量字符,表示日期的分隔符。
  • \d{2} 匹配两位数字,表示月份和日期。