Regex 需要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

我正在寻找一个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/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)