我正在努力想出一个与以下内容匹配的正则表达式。
file://server-name-01/e$/(any file or subfolder)?ds=test_01
以下是我一直在使用的表达式,但由于某种原因,这将匹配任何服务器名称。
.*[a-zA-Z]:\/\/.*[sf.ps.gdo02].*\?ds=[a-zA-Z0-9_]+$
我的目标是匹配特定的服务器名称和管理员共享,以便在共享中定位的任何文件或子文件夹都匹配。
我也对使用1表达式匹配以下内容感兴趣。
1) file://server-name-01/e$/(any file or subfolder)?ds=test_01
2) file://server-name-02/e$/(any file or subfolder)?ds=test_01
3) file://server-name-03/e$/(any file or subfolder)?ds=test_01
请原谅我,因为我对定义表达式相当陌生,但我们将非常感谢任何帮助。
答案 0 :(得分:0)
<强>正则表达式:强>
^.*\/([^\/]+)\/([^\/]+)\/([^\/]+)\?ds=.*$
<强> Live demo 强>
示例:强>
file://server-name-01/e$/(any file or subfolder)?ds=test_01
<强>匹配强>
1 `server-name-01`
2 `e$`
3 `(any file or subfolder)`
答案 1 :(得分:0)
以下在Perl中有效。不确定您是否需要更多灵活性,但如果我正确理解您的要求,则可以正常工作(编码,测试,直接粘贴)。
printf("Enter your expression: ");
my $exp = <STDIN>;
chomp($exp);
if ($exp =~ /file:\/\/server-name-0[1-3]\/e\$\/.*\?ds=test_01/)
{
printf("Matched.\n");
}
else
{
printf("NO MATCH!\n");
}