Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 要匹配[anypath]/ui/[anyfile].png的Regexp_Javascript_Regex - Fatal编程技术网

Javascript 要匹配[anypath]/ui/[anyfile].png的Regexp

Javascript 要匹配[anypath]/ui/[anyfile].png的Regexp,javascript,regex,Javascript,Regex,我有一组图像路径,如下所示: a/asstes/ui/img1.png b/nested/source/ui/img.jpg ... 这个想法是,图像的路径和名称可以是随机的,但重要的部分是图像位于ui文件夹中,并具有jpg或png的扩展名 我可以使用什么正则表达式来检查这些条件的文件路径 到目前为止,我已经做到了这一点,/\ui\/img1\(png | jpg)$/这与a/asstes/ui/img1.png匹配正确,但理想情况下img1应该是动态的,因为文件名可以是任何东西 编辑理想情况

我有一组图像路径,如下所示:

a/asstes/ui/img1.png
b/nested/source/ui/img.jpg
...
这个想法是,图像的路径和名称可以是随机的,但重要的部分是图像位于
ui
文件夹中,并具有
jpg
png
的扩展名

我可以使用什么正则表达式来检查这些条件的文件路径

到目前为止,我已经做到了这一点,
/\ui\/img1\(png | jpg)$/
这与
a/asstes/ui/img1.png
匹配正确,但理想情况下
img1
应该是动态的,因为文件名可以是任何东西


编辑理想情况下,它将匹配直接位于
/ui

下的图像。如果
/ui/
必须是最后一个目录,请使用:

var测试=[
“a/asstes/ui/img1.png”,
'b/nested/source/ui/img.jpg',
'b/nested/ui/source/img.png',
];
console.log(test.map)(函数(a){
返回a+':'+/\/ui\/[^\/]+\.(png | jpg)$/.test(a);

}));JS regex用于图像路径:

/(.*\/.*)+\.(png|jpg)$/
你的情况:

/(.*\/.*)+ui\/.*(png|jpg)$/

您可以尝试这样做:
/\w+\/ui\/\w+\.\jpg\png$/


$使您始终在路径的最后输入一个jpg或png。

只需将
img1
替换为
+?
@Toto即可,谢谢。
增加了什么?我可以看到它也可以单独使用
+
。这也匹配嵌套图像,理想情况下,图像应该直接在ui下匹配,如上所述
/\ui\/.\.+(png | jpg)$/
只需添加
+
即可匹配一个或多个对象times@ShankarRegmi我刚刚在问题中添加了编辑。是否可以修改此项以满足该要求?只有直接在
/ui
文件夹下匹配图像,而不是嵌套的图像
/\/ui\/[^.]+\.(png | jpg)$/i
将更有效
(.*\/.*)+
(.*\/.*)+
是灾难性的回溯。您应该在发布答案之前尝试一下。确定吗?使用
/my dir-1/ui/my img file.png
abc/ui/img.png
(必须匹配)和
/abc/ui/png
(必须不匹配)进行测试