2
我試圖檢查一個URL是否以http | https開頭並以jpg | png結尾。我已經搜索過,但答案不適合我。Bash檢查http或https正則表達式
我有這個目前:
if [[ $url = ^https?://.*jpg ]]
then
wget -O webcam.jpg $url
fi
但其未能wget
。我究竟做錯了什麼?
我試圖檢查一個URL是否以http | https開頭並以jpg | png結尾。我已經搜索過,但答案不適合我。Bash檢查http或https正則表達式
我有這個目前:
if [[ $url = ^https?://.*jpg ]]
then
wget -O webcam.jpg $url
fi
但其未能wget
。我究竟做錯了什麼?
您必須使用=~
運算符進行正則表達式匹配; =
只有模式匹配。等效模式將是http?(s)://*jpg*
。 (中bash
最新版本總是使用擴展模式中[[ ... ]]
;舊版本可能要求它們與shopt -s extglob
明確啓用。)
(我加後*
的模式,因爲模式被固定到系統默認的串的兩端,而正則表達式需要^
和$
明確。既然你沒有$
在你的正則表達式的結束,我做了露底格局爲好。)
不會增加或者'*'匹配URL像'http:// jpg.com/not_an_image.html'?我認爲OP想要精確匹配,而不是子字符串匹配。 – dimo414