正则表达式是一种描述文本模式的规则语法,由普通字符、元字符(如.、\d、^)和量词(如*、+、?)构成模式,用于匹配输入文本中的子串。

正则表达式(Regular Expression,常缩写为 regex、regexp 或 RE)不是“高级编程语言”,而是一种**描述文本模式的规则语法**。它的本质是用一组字符和符号构成的“模板”,来定义你希望匹配的字符串长什么样。
模式(Pattern)
这是正则表达式的本体——一段由普通字符(如 a、1、@)和元字符(如 .、*、\d)组成的字符串。比如 \d{3}-\d{4} 就是一个模式,表示“三位数字+短横线+四位数字”,可匹配 123-4567。
匹配(Matching)
指将某个输入文本与模式进行比对的过程。如果文本中存在子串符合该模式的全部规则,就叫“匹配成功”。例如用 cat 去匹配句子 The cat sat on the mat,会找到两个位置:cat 和 mat 中的 at(注意:cat 是完整匹配,at 是子串匹配,取决于是否启用单词边界)。
元字符(Metacharacter)
这些是带特殊含义的符号,在正则中不表示自己,而是控制匹配逻辑:
- . 匹配除换行符外的任意单个字符
- \d 匹配一个数字(等价于 [0-9])
- \w 匹配字母、数字或下划线(等价于 [a-zA-Z0-9_])
- ^ 表示行首,$ 表示行尾
- [ ] 定义字符集合,如 [aeiou] 匹配任一元音字母
- ( ) 用于分组,既能改变作用范围,也能捕获匹配内容
量词(Quantifier)
说明前面的字符、分组或字符类应出现多少次:
- *:零次或多次(ab* 可匹配 a、ab、abb)
- +:一次或多次(ab+ 不匹配 a,但匹配 ab、abb)
- ?:零次或一次(colou?r 匹配 color 和 colour)
- {n,m}:出现 n 到 m 次(a{2,4} 匹配 aa、aaa、aaaa)
理解这些术语的关键在于:它们不是孤立概念,而是协同工作的部件。模式靠元字符和量词构建逻辑,匹配是这个逻辑在真实文本上的执行结果。掌握术语,等于拿到打开正则大门的钥匙。










