结合正则表达式以获取路径版本

时间:2018-12-02 16:15:12

标签: regex perl

我想实现一个Perl正则表达式,它检查路径的格式是否正确,是否使用正确的版本。用一个例子来解释会更容易。请考虑以下路径:

$("#sidebar").toggle("slide", { direction: "left" }, 1000);

我想检查此路径是否以/bin/src/python/2.7.5/lib/re.py 开头并且其中有/bin。因此,我使用python。但我也想通过某种方式将其插入^/bin/.*/python/中来获取版本2.7.5

应为以下内容:

$1

1 个答案:

答案 0 :(得分:1)

如果版本号始终在/python/之后,则可以执行以下操作:

if ($path =~ m{^/bin/.*/python/([^/]+)}) {
    $version = $1;
}

这将获取/python/之后的路径段(一系列非/字符)。

您可能会更加喜欢,并尝试验证该版本是否包含点号:

if ($path =~ m{^ /bin/ .* /python/ ( [0-9]+ (?: \. [0-9]+ )* ) / }x) {
    $version = $1;
}

(这是使事情变得凌乱到足以打乱x标志以允许正则表达式中包含空格的点。)