dsgawmla208057 2011-05-10 11:53
浏览 300
已采纳

从S3 URL中提取存储桶和资源名称(正则表达式问题)

I will be receiving input which will be ANY ONE of the following. I need to devise a regex which can handle any of these and extract the validS3bucketname and validS3resourcename.

http://s3.amazonaws.com/validS3bucketname/validS3resourcename
https://s3.amazonaws.com/validS3bucketname/validS3resourcename
http://validS3bucketname.s3.amazonaws.com/validS3resourcename
https://validS3bucketname.s3.amazonaws.com/validS3resourcename

validS3bucketname and validS3resourcename are VALID S3 values, including spaces and whatever not - I have no idea what S3 allows as valid file names.

  • 写回答

2条回答 默认 最新

  • duankuai6991 2011-05-11 10:54
    关注

    The following will match both:

    /:\/\/s3\.amazonaws.com\/([^\/]+)|:\/\/([^.]+)\.s3\.amazonaws\.com\//
    

    this simple function should wrap it nicely

    function getS3Info($url) {
        if(! preg_match('/(?:\/\/s3\.amazonaws.com\/([^\/]+)|:\/\/([^.]+)\.s3\.amazonaws\.com)\/([^\/]+)/', $url, $a)) {
            return false;
        }
    
        $bucket = isset($a[2]) ? $a[2] : $a[1];
        $resource = $a[3];
    
        return array('bucket' => $bucket, 'resource' => $resource);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验
  • ¥15 canal如何实现将mysql多张表(月表)采集入库到目标表中(一张表)?
  • ¥15 wpf ScrollViewer实现冻结左侧宽度w范围内的视图
  • ¥15 栅极驱动低侧烧毁MOSFET
  • ¥30 写segy数据时出错3
  • ¥100 linux下qt运行QCefView demo报错
  • ¥50 F1C100S下的红外解码IR_RX驱动问题