从包含指定单词并以两个指定文件扩展名之一结尾的源代码文本中获取 URL

问题描述 投票:0回答:3

我的正则表达式需要一些帮助。

Haystack 是整个页面的源代码。我正在寻找末尾有 jpg 和 jpeg 且中间有

pdp-zoom
的链接。

这样的链接:

https://mosaic04.ztat.net/vgs/media/packshot/pdp-zoom/BR/71/1A/01/7Q/11/[email protected]

或者这个:

//mosaic04.ztat.net/vgs/media/packshot/pdp-zoom/BR/71/1A/01/7Q/11/[email protected]

我有:

(http)?s?:?(\/\/[^,|"\']*\.(?:jpg|jpeg))

并且需要集成“pdp-zoom”。

我将其与 php 5.6 和

preg_match_all()
一起使用。

php regex url string-matching text-parsing
3个回答
2
投票

使用这个:

(https?:)?//[^'"\s]*/pdp-zoom/[^'"\s]*\.jpe?g

说明:

(https?:)?          # http: or https:, optional
//                  # double slashes
[^'"\s]*            # 0 r more any character that is not quotes or spaces
/pdp-zoom/          # literally /pdp-zoom/
[^'"\s]*            # 0 r more any character that is not quotes or spaces
\.                  # a dot
jpe?g               # jpeg or jpg

演示


0
投票

尝试正则表达式:

(?:http(?:s)?:)?\/\/[^,|"\']+?\/pdp-zoom\/[^,|"\']+?\.(?:jpg|jpeg)

演示


0
投票

您可以使用这个正则表达式,

(https?)?:?\/\/.*?pdp-zoom.*?\.jpe?g(?=\s|$)

仅当 URL 内部包含

pdp-zoom
且以
jpg
jpeg
结尾时,才会完全匹配 URL。

这里的

(?=\s|$)
前瞻可确保 URL 完全匹配,而不是像这样的较大字符串中的部分匹配,

https://mosaic04.ztat.net/abcpdp-zoom/abc.jpg/[电子邮件受保护]

如果我们不在正则表达式中放置前瞻,则正则表达式将部分匹配并在上面的字符串中给出此 URL,

https://mosaic04.ztat.net/abcpdp-zoom/abc.jpg

这是不正确的,因此需要向前看。

演示

© www.soinside.com 2019 - 2024. All rights reserved.