## 可选路径(|)

竖线字符用于分离模式中的可选路径。 比如模式`gilbert|Sullivan`匹配 ”gilbert” 或者 ”sullivan”。 竖线可以在模式中出现任意多个，并且允许有空的可选路径(匹配空字符串)。 匹配的处理从左到右尝试每一个可选路径，并且使用第一个成功匹配的。 如果可选路径在子组(下面定义)中， 则”成功匹配”表示同时匹配了子模式中的分支以及主模式中的其他部分。

可以通过使用 `(*MARK:NAME)` 或 `(*:NAME)` 记录匹配到的是哪个可选分支。 可以出现任意数量的 `(*MARK)` 动词，并且它们的名称不必唯一。 当匹配成功时，最后遇到的 `(*MARK:NAME)` 的名称会作为名为 `MARK` 的捕获组出现在匹配结果中，因此可以从 preg_match() 的 `matches` 读取， 也会传递给 preg_replace_callback() 的 `callback` 等。

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open