Regex 需要Perl正则表达式
我正在寻找一个Perl正则表达式来从以下代码中提取所有图像:Regex 需要Perl正则表达式,regex,perl,Regex,Perl,我正在寻找一个Perl正则表达式来从以下代码中提取所有图像: slideshowimages("images/image1.jpg","images/image2.png","images/image3.jpg") slideshowimages('images/image4.jpg','images/image5.png','images/image6.jpg') 输出将是一个具有以下内容的数组: images/image1.jpg, images/image2.png, images/im
slideshowimages("images/image1.jpg","images/image2.png","images/image3.jpg")
slideshowimages('images/image4.jpg','images/image5.png','images/image6.jpg')
输出将是一个具有以下内容的数组:
images/image1.jpg, images/image2.png, images/image3.jpg, images/image4.jpg,
images/image5.png, images/image6.jpg
需要注意的是:
- 图像扩展名可以是.jpg/.png
- 图像可以在单引号或双引号内
while ($html =~ /["|'|=](.*\.jpg|gif|png|bmp|swf).*"/g) {
my $item = $1;
$item =~ s/\"|\'|=//g;
push (@images, $item);
}
但这并不是很有效
感谢您的帮助。一个简单的正则表达式可以是:
["'][^'"]*[.](jpg|png)["']
尽管在路径上失败,包括”
或“
如幻灯片图像(“图像/image'1.jpg”)
。可以处理这种情况的表达式为:
('.*?\.(jpg|png)')|(".*?\.(jpg|png)")
一个简单的正则表达式可以是:
["'][^'"]*[.](jpg|png)["']
它会在路径上失败,这些路径包括”
或“
如幻灯片图像(“图像/image'1.jpg”)
。可以处理这种情况的表达式为:
('.*?\.(jpg|png)')|(".*?\.(jpg|png)")
您需要捕获您正在使用的内容,单引号或双引号,然后再引用。此外,您还需要对扩展的选择进行分组。否则,您会说“任何以jpg或纯gif(、png等)结尾的内容”
调整@mpapec的答案:
my @images = $html =~ /(["'])[^"']*?\.(jpg|gif|png|bmp|swf)\1/g;
(在文件名中不允许“and”可能也是个好主意)
您需要捕获您正在使用的内容,单引号或双引号,然后再引用。此外,您需要对扩展名的选择进行分组。否则,您会说“任何以jpg或纯gif(、png等)结尾的内容”
调整@mpapec的答案:
my @images = $html =~ /(["'])[^"']*?\.(jpg|gif|png|bmp|swf)\1/g;
(在文件名中不允许“and”也可能是个好主意)。
my$html=my$html=您是如何制作该图像的?是的,debuggex。很棒的工具你是怎么做的?是的,debuggex。伟大的tool@Bulletmagnettnx用于编辑,但/m
仅用于锚定(^$
)@Bulletmagnet tnx用于编辑,但/m
仅用于锚定(^$
)我的第一个想法是图像/image'1'。jpg是一个不可能的文件名,但它不是在*nix-vi“image'1'.jpg”(尽管它很可笑,imho)我的第一个想法是images/image'1'.jpg是一个不可能的文件名,但它不是在*nix-vi“image'1'.jpg”上(尽管这很可笑,imho)