正则(regex)
匹配(matching)
元字符(metacharacter)
流派(flavor)
子表达式(subexpression)
"子表达式"指的是整个正则表达式中的一部分, 通常是括号内的表达式, 或者是由|
分隔的多选分支.
例如:
^(Subject|Date):
中, Subject|Date
通常被视为一个子表达式. 其中的Subject
和Date
也算得上子表达式. 而且, 严格说起来, S
, u
, b
...这些字符, 都算子表达式.
H[1-35-9] *
中, 1-3
这样的字符序列并不能算H[1-35-9] *
的子表达式, [1-35-9]
才算, 因为1-3``5-9
所属的字符组是不可分割的"单元(unit)". 但是, H
, [1-35-9]
.. 都是H[1-35-9] *
的子表达式.
与多选分支不同的是, 量词(*, ?, +
)作用的对象是他们之前紧邻的子表达式. 所以mis+pell
中的+
作用的是s
, 而不是mis
或者is
. 当然, 如果量词之前紧邻的是一个括号包围的子表达式, 整个子表达式(无论多复杂)都被视为一个单元.
字符(character)
单词分界符(\b)
单词分界符的意思就是, 在此位置的一侧是单词(例如数字), 另一侧不是(例如行的末尾, 或者数字后面的空格).
网友评论