0

我有以下声明:

<div><img src="pict001.png"></div><div><img src="pict002.jpg"></div>

我正在尝试匹配 src 名称,因此结果是:

 [ "pict001.png", "pict002.jpg" ]

到目前为止,我有:

/pict[\d]+\.wpf/

但文件扩展名上的或 (|) 有问题

4

2 回答 2

1

如果你有一个接受的文件扩展名列表,你可以像这样设置它: pict[\d]+\.(jpg|png|xyz). 您所做的就是围绕您期望的不同类型的扩展()|划分它们。 使用您提供的测试数据,我对 Rubular 进行了一些快速测试。

如果你没有扩展列表,你可以做一些更动态的事情,比如:pict[\d]+\.[a-zA-Z]{2,3}. 这几乎是一回事,只是它会返回任何 2 到 3 个字符的文件扩展名。长。通过调整数字,您可以允许在一定范围的字符中进行任何奇数扩展。

使用更复杂的正则表达式,有助于将它们分解成更小的部分以找出所有规则。在这种情况下,您可以参加pict[\d]+\.您已经必须匹配的部分pict#######.。之后,您只需要一个较小的正则表达式即可找到您的扩展。您可以根据需要将其变得复杂(或简单)。查看我提供的两个,唯一真正的区别在于pict[\d]+\.,因此您可以在其中使用额外的规则和条件对其进行自定义。

于 2013-09-23T20:47:43.423 回答
0

搜索所有匹配项都可以:

pict[\d]+\.[a-zA-Z0-9]+(?=([^a-zA-Z0-9]|$))

如果您想要特定的扩展名,可以将 [a-zA-Z0-9]+(?=([^a-zA-Z0-9]|$)) 替换为 (png|jpg|gz) 或其他内容,但是扩展名可以是数字和字母的任意组合。

于 2013-09-23T20:54:17.090 回答