正则表达式主要包括_正则表达式语法的主要构成部分

正则表达式核心由字符匹配单元、量词、位置断言、分组与引用四类基本语法元素构成:字符匹配指定“要匹配什么”,量词控制重复次数,位置断言判断“在哪里”,分组与引用实现结构化匹配和提取。

正则表达式的核心由几类基本语法元素构成,掌握它们就能组合出绝大多数匹配模式。

字符匹配单元

这是最基础的部分,用于指定“要匹配什么”:

  • 普通字符:如 a1@,直接匹配自身;
  • 预定义字符类:如 \d(数字)、\w(字母/数字/下划线)、\s(空白符);
  • 字符集合[abc] 匹配 a、b 或 c 中任意一个;[^0-9] 表示非数字;
  • 点号(.):匹配除换行符外的任意单个字符(部分引擎可通过标志开启跨行匹配)。

量词(重复控制)

决定前面的元素出现多少次:

  • *:0 次或多次;+:1 次或多次;?:0 次或 1 次;
  • {n}:恰好 n 次;{n,}:至少 n 次;{n,m}:n 到 m 次;
  • 默认是“贪婪匹配”,加 ? 可转为“懒惰匹配”,如 *?+?

位置断言(锚点与边界)

不消耗字符,只判断“在哪里”:

  • ^:行首(多行模式下每行开头);$:行尾;
  • \b:单词边界(如 \bcat\b 不会匹配 category 中的 cat);
  • \B:非单词边界;\A\Z 分别表示整个字符串的开头和结尾(不受多行模式影响)。

分组与引用

用于结构化匹配和提取:

  • (...):捕获分组,匹配内容可被后续引用(如 \1 引用第一个分组);
  • (?:...):非捕获分组,仅用于逻辑分组,不保存匹配结果;
  • (?...)(?'name'...):命名捕获组,便于后期通过名称访

    问;
  • 前瞻断言:(?=...)(正向肯定)、(?!...)(正向否定),用于“后面必须/不能是…”的条件判断。

这些部分相互组合,构成了正则表达式的表达力。实际使用时,建议从简单字符+量词开始,再逐步加入断言和分组,避免过度复杂化。