我想实现一个Perl正则表达式,它检查路径的格式是否正确,是否使用正确的版本。用一个例子来解释会更容易。请考虑以下路径:
$("#sidebar").toggle("slide", { direction: "left" }, 1000);
我想检查此路径是否以/bin/src/python/2.7.5/lib/re.py
开头并且其中有/bin
。因此,我使用python
。但我也想通过某种方式将其插入^/bin/.*/python/
中来获取版本2.7.5
。
应为以下内容:
$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
标志以允许正则表达式中包含空格的点。)