Regex 查找不同扩展名的所有正则表达式匹配项

Regex 查找不同扩展名的所有正则表达式匹配项,regex,Regex,我有以下声明: <div><img src="pict001.png"></div><div><img src="pict002.jpg"></div> 到目前为止,我已经: /pict[\d]+\.wpf/ 但是我在文件扩展名上的或(|)上遇到了问题如果您有一个可接受的文件扩展名列表,您可以这样设置: pict[\d]+\(jpg | png | xyz)。您要做的是将()中所期望的不同类型的扩展用|划分 如果没有扩展

我有以下声明:

<div><img src="pict001.png"></div><div><img src="pict002.jpg"></div>
到目前为止,我已经:

/pict[\d]+\.wpf/

但是我在文件扩展名上的或(|)上遇到了问题

如果您有一个可接受的文件扩展名列表,您可以这样设置:
pict[\d]+\(jpg | png | xyz)
。您要做的是将
()
中所期望的不同类型的扩展用
|
划分

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


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

搜索所有匹配项可以:

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

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

所有扩展名?我会说
\..[^.]+
,除非你想缩小范围。你不能用正则表达式解析HTML!
pict[\d]+\.[a-zA-Z0-9]+(?=([^a-zA-Z0-9]|$))