竖线字符用于分离模式中的可选路径。
比如模式gilbert|Sullivan
匹配 ”gilbert” 或者 ”sullivan”。
竖线可以在模式中出现任意多个,并且允许有空的可选路径(匹配空字符串)。
匹配的处理从左到右尝试每一个可选路径,并且使用第一个成功匹配的。
如果可选路径在子组(下面定义)中,
则”成功匹配”表示同时匹配了子模式中的分支以及主模式中的其他部分。
可以通过使用 (*MARK:NAME)
或 (*:NAME)
记录匹配到的是哪个可选分支。
可以出现任意数量的 (*MARK)
动词,并且它们的名称不必唯一。
当匹配成功时,最后遇到的 (*MARK:NAME)
的名称会作为名为
MARK
的捕获组出现在匹配结果中,因此可以从
preg_match() 的 matches
读取,
也会传递给 preg_match_all() 的 callback
等。