基本概念
一个正则表达式通常被称为一个
模式
(pattern),为用来描述或者匹配一系列
符合某个句法规则的字符串。例如:Handel、Händel 和 Haendel 这三个字
符串,都可以由 "H(a|ä|ae)ndel" 这个模式来描述。大部分正则表达式的形式
都有如下的结构:
【替换】
|
竖直分隔符代表替换。例如"gray|grey"可以匹配 grey 或 gray。
【数量限定】
某个字符后的数量限定符用来限定前面这个字符允许出现的个数。最常
见的数量限定符包括“+”,“?”和“*”(不加数量限定则代表出现一次且仅
出现一次):
+
加号代表前面的字符必须至少出现一次。(1 次,或多次)。例
如,"goo+gle"可以匹配 google,gooogle,goooogle 等;
?
问号代表前面的字符最多只可以出现一次。(0 次,或 1 次)。例
如,"colou?r"可以匹配 colour 或者 color;
*
星号代表前面的字符可以不出现,也可以出现一次或者多次。(0 次,或
1 次,或多次)。例如,"0*42"可以匹配 42,042,0042,00042 等。
【匹配】
圆括号可以用来定义操作符的范围和优先度。例如,"gr(a|e)y"等价
于"gray|grey","(grand)?father"匹配 father 和 grandfather。
上述这些构造子都可以自由组合,因此,"H(ae?|ä)ndel"和"H(a|ae|
ä)ndel"是相同的。
精确的语法可能因不同的工具或程序而异。
表达式全集
正则表达式有多种不同的风格。下表是在 PCRE 中元字符及其在正则表达式上下文中的行
为的一个完整列表:
字符 描述