正则表达式核心由字符匹配单元、量词、位置断言、分组与引用四类基本语法元素构成:字符匹配指定“要匹配什么”,量词控制重复次数,位置断言判断“在哪里”,分组与引用实现结构化匹配和提取。
正则表达式的核心由几类基本语法元素构成,掌握它们就能组合出绝大多数匹配模式。
这是最基础的部分,用于指定“要匹配什么”:
a、1、@,直接匹配自身;\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'...):命名捕获组,便于后期通过名称访问;(?=...)(正向肯定)、(?!...)(正向否定),用于“后面必须/不能是…”的条件判断。这些部分相互组合,构成了正则表达式的表达力。实际使用时,建议从简单字符+量词开始,再逐步加入断言和分组,避免过度复杂化。