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 关注
- 121 浏览
添加回答
举报