阅读铁路图

Regexper 生成的图像通常称为“铁路图”。 这些图是一种直接的方式来说明在正则表达式中有时会变得非常复杂的处理,具有嵌套循环和可选元素。 阅读这些图表的最简单方法是从左边开始并按照右边的线进行。 如果遇到分支,则可以选择遵循多个路径之一(这些路径可以循环回到图表的较早部分)。 为了使字符串成功匹配图中的正则表达式,您必须能够在从左到右移动时完成图的每个部分并完成整个图直到最后。

例如,此表达式将匹配“狮子、老虎和熊。哦,天哪!” 或者语法更正确的“狮子、老虎和熊。哦,天哪!” (有或没有牛津逗号)。 该图首先匹配字符串“Lions”; 如果没有输入,您将无法继续。 然后可以在逗号或字符串“和”之间进行选择。 无论您做出何种选择,输入字符串都必须包含“tigers”,后跟一个可选的逗号(您的路径可以穿过逗号或绕过逗号)。 最后,字符串必须以“和熊。哦,天哪!”结尾。

这些图表的基本部分

这些图表中最容易理解的部分是在没有选项的情况下匹配某些特定文本位的部分。 它们是:文字、转义序列和“任何字符”。

文字

文字匹配精确的文本字符串。 它们显示在浅蓝色框中,并且引用了内容(以便更容易看到任何前导或尾随空格)。

转义序列

转义序列显示在绿色框中,并包含它们将匹配的字符类型的描述。

"任何字符"

“任何字符”类似于转义序列。 它匹配任何单个字符。

字符集

字符集将匹配或不匹配单个字符的集合。 它们显示为包含文字和转义序列的框。 顶部的标签表示字符集将匹配“其中一个”包含的项目或“无”包含的项目。

子表达式

子表达式由表达式中项目周围的虚线轮廓指示。 捕获的子表达式标有它们将被捕获的组号。 正向和负向超前被标记为这样。

交替

Alternation 为正则表达式提供了选择。 它由散布为多个选项的表达式的路径指示。

量词

量词指示表达式的一部分是应该重复还是可选。 它们的显示方式与 Alternation 类似,通过图表分支的路径(并可能在其自身上循环)。 除非路径上有箭头指示,否则首选路径是继续直行。

Zero-or-more

Greedy quantifier
Non-greedy quantifier

零个或多个量词匹配模式的任意数量的重复。

Required

Greedy quantifier
Non-greedy quantifier

所需的量词匹配模式的一个或多个重复。 请注意,它没有允许像零个或多个量词那样跳过模式的路径。

Optional

Greedy quantifier
Non-greedy quantifier

可选量词最多与模式匹配一次。 请注意,它没有允许模式像零个或多个或必需的量词那样自行循环的路径。

Range

Greedy quantifier
Non-greedy quantifier

范围量词指定模式可以重复的次数。 这里提供的两个示例都具有“{5,10}”的范围,循环分支的标签表示该分支可以遵循的次数。 这些值比表达式中指定的小 1,因为模式必须在重复之前匹配一次,这是一个选项。 因此,对于这些示例,模式将匹配一次,然后循环将遵循 4 到 9 次,总共有 5 到 10 次模式匹配。