我的正则表达式需要一点帮助。
Haystack是整个页面的源码。我正在寻找的链接有jpg和jpeg在末尾和"pdp-zoom“在中间的某个地方。
如下所示的链接:
https://mosaic04.ztat.net/vgs/media/packshot/pdp-zoom/BR/71/1A/01/7Q/11/BR711A017-Q11@4.jpg
或者这样:
//mosaic04.ztat.net/vgs/media/packshot/pdp-zoom/BR/71/1A/01/7Q/11/BR711A017-Q11@4.jpg我有:
(http)?s?:?(\/\/[^,|"\']*\.(?:jpg|jpeg))并且需要集成那个"pdp-zoom“。
我在php5.6和preg_match_all中使用了它。
发布于 2019-01-07 22:19:02
使用以下命令:
(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发布于 2019-01-07 22:16:53
试试正则表达式:(?:http(?:s)?:)?\/\/[^,|"\']+?\/pdp-zoom\/[^,|"\']+?\.(?:jpg|jpeg)
发布于 2019-01-08 00:22:25
您可以使用此正则表达式,
(https?)?:?\/\/.*?pdp-zoom.*?\.jpe?g(?=\s|$)只有当其中包含pdp-zoom并且以jpg或jpeg结尾时,它才会完全匹配URL。
在这里,这个超前的(?=\s|$)确保URL完全匹配,而不是部分匹配像这样的更大的字符串。
https://mosaic04.ztat.net/abcpdp-zoom/abc.jpg/BR711A017-Q11@4.jpg
如果我们不在正则表达式中放入look ahead,那么正则表达式将部分匹配,并在上面的字符串上给出这个URL,
https://mosaic04.ztat.net/abcpdp-zoom/abc.jpg这是不正确的,因此需要向前看。
https://stackoverflow.com/questions/54075990
复制相似问题