工具哇!

正则表达式可视化

用图像的方式显示正则表达式,更直观地理解和调试正则表达式的利器

正则表达式可视化
    使用说明

    使用本工具生成的正则表达式可视化图像也称作 铁路图(Railroad Diagrams)。通过生成的图像,能简单明了看出正则表达式中复杂的逻辑关系,如嵌套循环和可选元素。浏览可视化图像的方式是先从左边开始,然后沿着线条向右,如果遇到分支,则可以选择多条路径中的一条(这些路径最终会回到图的前面)。为了使字符串成功地匹配图表中的正则表达式,当您从左向右移动并穿过整个图表到达末尾时,您必须能够完成图表的每个部分。

    例如:表达式 狮子(?:和|,)老虎,?和熊 既能匹配 狮子和老虎和熊,也能匹配 狮子,老虎,和熊。从图里可以看出,首先会匹配字符串 狮子,如果字符串里没有,则无法继续。然后是 二选一,接下来则必须包含 老虎;然后是 或跳过(无逗号)。最后,匹配的字符串必须以 和熊 结尾。

    正则可视化图像的基本组成

    可视化图像中最容易理解的部分是不带特殊选项的匹配特定文本的部分。它们分别是:字面值字符、转义序列和任意字符。

    字面值字符 [Literals]

    表示文字与一个准确的文本字符串进行匹配。显示在浅蓝色的框中,并被加上引号(以便更容易看到字符串前后的空格)。

    转义序列 [Escape sequences]

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

    任意字符 [Any character]

    任意字符类似于转义序列。它能匹配任意的单个字符。

    字符集 [Character]

    字符集是需要匹配或不需要匹配的单个字符的集合。在图里显示为一个包含文字和转义序列的框。顶部的标签表示字符集将匹配“一个(One of)”包含的项目或“非(None of)”包含的项目。

    子表达式 [Subexpressions]

    子表达式由表达式周围的虚线轮廓表示。捕获的子表达式标有它们将在其下被捕获的组号。

    分支 [Alternation]

    当一个字符串的某一子串具有多种可能时,采用分支结构来匹配。在可视化图像里,它会以扇形的形式显示出来。

    量词 [Quantifiers]

    量词用来指示表达式的一部分是重复的还是可选的。它们的显示方式与分支类似,在图中显示为分支路径(可能会循环回自身)。除非路径上有箭头指示,否则首选路径是继续直走。

    零次或多次

    贪婪模式
    非贪婪模式

    零次或多次量词匹配任意数量的重复。

    必须的

    贪婪模式
    非贪婪模式

    必须量词实现一个或多个重复项匹配。注意:它没有像零或更多量词那样允许被跳过的路径。

    可选的

    贪婪模式
    非贪婪模式

    可选量词最多匹配一次。请注意:它没有必须量词那样在自身上循环的路径。

    范围

    贪婪模式
    非贪婪模式

    范围限定符指定可以重复匹配的次数。这里提供的两个例子的范围都是 {5,10},循环分支的标签表示该分支可能被执行的次数。这些值比表达式中指定的值小1,因为模式在重复之前必须匹配一次。因此,在示例里,初始会匹配一次,然后再被循环匹配4到9次,完成总共5到10次的匹配。

    赞助商广告