2 回答

TA貢獻1824條經驗 獲得超5個贊
在我看來,您希望驗證合格的 url 是否用雙引號括起來并且前面帶有"res":
,那么您只想提取該 url。
開頭的后視和結尾的前視將驗證確切的完整字符串。
必須對點進行轉義才能將其視為字符串文字。
你的下劃線之前有一個額外的點,我不相信你想保留它。
~
如果您使用非斜杠字符作為模式分隔符(我將使用),則不需要轉義正斜杠。
[a-zA-Z0-9_]
更簡潔地寫為\w
.
代碼:(演示)
$string = '"res":"https://my.site.com/image/I/fj23l6j2lgk_AM1200_.jpg"';
echo preg_match('~(?<=^"res":")https://my\.site\.com/image/I/[a-zA-z\d]{11}_\w*_\.jpg(?="$)~', $string, $out) ? $out[0] : 'no match';
輸出:
https://my.site.com/image/I/fj23l6j2lgk_AM1200_.jpg

TA貢獻1836條經驗 獲得超5個贊
使用 PHP ,您可以通過以下方式選擇:
$subject = '"res":"https://my.site.com/image/I/fj23l6j2lgk_AM1200_.jpg"';
$regex = '/https:\/\/my\.site\.com\/image\/I\/[[:alnum:]]{11}_[a-zA-Z0-9_]*_.jpg/'
preg_match($regex , $subject , $matches);
var_dump($matches);
輸出 :
array(1) {
[0]=>
string(51) "https://my.site.com/image/I/fj23l6j2lgk_AM1200_.jpg"
}
- 2 回答
- 0 關注
- 160 瀏覽
添加回答
舉報