簡體   English   中英

正則表達式以獲取具有某些擴展名的所有鏈接

[英]Regular Expression to get all links with certain extensions

我正在尋找一個正則表達式,它將抓取所有具有以下數組擴展名的網址:

Array
(
    [0] => mp4
    [1] => m4v
    [2] => webm
    [3] => ogv
    [4] => wmv
    [5] => flv
)

該數組由名為wp_get_video_extensions()的內部 WordPress 函數返回,並且是 WordPress 識別的視頻 URL。

一個內容塊看起來像這樣,里面有 URls:

“是的,但我以合理的速度成長,”睡鼠說:“不是以那種可笑的方式。” 而他也很郁悶的起身,跨到了球場的另一邊。

一直以來,女王一直盯着帽匠,當睡鼠穿過法庭時,她對法庭的一名官員說:“把上一場音樂會的歌手名單給我!” 那個可憐的帽匠在上面顫抖着,把兩只鞋子都抖掉了。

[視頻 mp4="http://www.example.com/files/video/video1.mp4"][/video]

“拿出你的證據,”國王憤怒地重復道,“否則不管你緊張與否,我都會處決你。”

http://www.example.com/files/video/video2.flv

“我是個窮人,陛下,”帽匠用顫抖的聲音開始說,“——而且我還沒有開始喝茶——大約一個多星期后——還有黃油面包變得如此糟糕怎么辦?稀薄——還有茶的閃爍——”

我試圖讓它在那里找到兩個視頻網址並返回數組中的整個網址。

這是我所擁有的:

preg_match_all( '/^https?:\/\/(?:[a-z\-]+\.)+[a-z]{2,6}(?:/[^/#?]+)+\.(?:' . implode( '|', wp_get_video_extensions() ) . ')$/', $post->post_content, $matches);

我得到了這個:

警告:preg_match_all():未知修飾符“[”

理想情況下,我想得到這個:

Array
(
    [0] => Array
           (
               [0] => http://www.example.com/files/video/video1.mp4
               [1] => http://www.example.com/files/video/video2.flv
           )
    [1] => Array
           (
               [0] => http://www.example.com/
               [1] => http://www.example.com/
           )
    [2] => Array
           (
               [0] => files/video/
               [1] => files/video/
           )
    [3] => Array
           (
               [0] => video1.mp4
               [1] => video2.flv
           )
)

但這也很完美,因為我可以稍后使用parse_url()來分解其余部分:

Array
(
    [0] => http://www.example.com/files/video/video1.mp4
    [1] => http://www.example.com/files/video/video2.flv
)

您的第一個問題是您沒有轉義所有“ /”。 第二個問題是,僅當這是行的開頭和結尾時,您才嘗試匹配。 這應該照顧它。

preg_match_all('~https?://(?:[a-z\-]+\.)+[a-z]{2,6}(?:/[^/#?]+)+\.(?:' . implode( '|', wp_get_video_extensions() ) . ')~', $post->post_content, $matches);

使用“〜”可以使您不必轉義“ /”。

我有這樣的網址列表

https://example.com/icon.gif https://example.com/photo.png https://example.com/icp.css. https://example.com/free

我不想要那些擴展名為 .png、.gif、.css、.ttf 的 url。

有什么辦法可以做到這一點?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM