Jartap Jartap
首页
  • 正则表达式
  • 字符匹配基础
  • 量词与重复匹配
  • 分组与引用
  • 各语言正则表达式用法概览

基础语法

字面字符和元字符

字面字符

字面字符是可以直接匹配自身的字符,包括:

  1. 字母和数字:a-z, A-Z, 0-9 示例:cat 精确匹配字符串 "cat"
  2. 普通符号:空格、!、@、#等(除元字符外的符号)
  3. 非ASCII字符:非ASCII字符全部是字面字符

元字符

  • .:匹配除换行符外的任意单个字符。
  • ^:匹配字符串的开始位置。
  • $:匹配字符串的结束位置。
  • *:匹配前面的子表达式零次或多次。
  • +:匹配前面的子表达式一次或多次。
  • ?:匹配前面的子表达式零次或一次。
  • {、}
  • |
  • [、]
  • (、)
  • \

字符集与字符类

字符类和字符集都表示字符集合,字符类是预定义字符集,比如\d表示数字字符集合;除了字符类(预定义的字符集),还可以自定义字符集。自定义字符集使用[]进行定义,比如定义一个由0和1组成的字符集[01]。 先从字符集的开始

使用 [] 将目标字符集合括起来,即可定义一个字符集,示例:

定义一个字符集表示数字的集合[0123456789],定义英语中元音字母集合[aeiou],定义小写英文字母集合[abcdefghijklmnopqrstuvwxyz];当字符集和包含很多字符时,这种穷举式写法显得繁琐,可以结合-范围表示法和^排除表示法进行定义,[0123456789]等价于[0-9],[abcdefghijklmnopqrstuvwxyz]等价于[a-z]

[aeiou]      # 匹配任意元音字母
[A-Za-z]     # 匹配所有大小写字母
[0-9A-F]     # 匹配十六进制数字
[^0-9]       # 匹配非数字字符(排除型字符集)

字符类是对常用字符集的简写

字符类 等价字符集 描述
\d [0-9] 数字字符
\w [A-Za-z0-9_] 单词字符
\s [ \t\r\n\f] 空白字符
\D [^0-9] 非数字
\W [^A-Za-z0-9_] 非单词字符
\S [^ \t\r\n\f] 非空白字符
\b ​单词边界​(字母与非字母之间)
\B ​非单词边界

量词与贪婪匹配

锚点

分组与捕获