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

正则表达式的核心由几类基本语法元素构成,掌握它们就能组合出绝大多数匹配模式。
字符匹配单元
这是最基础的部分,用于指定“要匹配什么”:
-
普通字符:如
a、1、@,直接匹配自身; -
预定义字符类:如
\d(数字)、\w(字母/数字/下划线)、\s(空白符); -
字符集合:
[abc]匹配 a、b 或 c 中任意一个;[^0-9]表示非数字; - 点号(.):匹配除换行符外的任意单个字符(部分引擎可通过标志开启跨行匹配)。
量词(重复控制)
决定前面的元素出现多少次:
-
*:0 次或多次;+:1 次或多次;?:0 次或 1 次; -
{n}:恰好 n 次;{n,}:至少 n 次;{n,m}:n 到 m 次; - 默认是“贪婪匹配”,加
?可转为“懒惰匹配”,如*?、+?。
位置断言(锚点与边界)
不消耗字符,只判断“在哪里”:
10分钟内自己学会PHP其中,第1篇为入门篇,主要包括了解PHP、PHP开发环境搭建、PHP开发基础、PHP流程控制语句、函数、字符串操作、正则表达式、PHP数组、PHP与Web页面交互、日期和时间等内容;第2篇为提高篇,主要包括MySQL数据库设计、PHP操作MySQL数据库、Cookie和Session、图形图像处理技术、文件和目录处理技术、面向对象、PDO数据库抽象层、程序调试与错误处理、A
-
^:行首(多行模式下每行开头);$:行尾; -
\b:单词边界(如\bcat\b不会匹配category中的cat); -
\B:非单词边界;\A和\Z分别表示整个字符串的开头和结尾(不受多行模式影响)。
分组与引用
用于结构化匹配和提取:
-
(...):捕获分组,匹配内容可被后续引用(如\1引用第一个分组); -
(?:...):非捕获分组,仅用于逻辑分组,不保存匹配结果; -
(?或...) (?'name'...):命名捕获组,便于后期通过名称访问; - 前瞻断言:
(?=...)(正向肯定)、(?!...)(正向否定),用于“后面必须/不能是…”的条件判断。
这些部分相互组合,构成了正则表达式的表达力。实际使用时,建议从简单字符+量词开始,再逐步加入断言和分组,避免过度复杂化。









