正则表达式在字符串中查找某些URL

时间:2013-11-19 18:30:41

标签: php regex

我不是很擅长正则表达,但我一直在努力改进。现在我正在尝试使用正则表达式来匹配遵循特定语法的字符串中的所有URL。这是我的正则表达式代码:

@http://api\.ning\.com:80/files/[a-z0-9\*]/[a-z0-9\.]\.[jpg|png|gif|bmp]@i

这是我想要匹配的一个例子(但它不匹配):

http://api.ning.com:80/files/etWx3bZZxVPTI8A3sSd3zoLhhkTmjoCs2IRFnOacPoHzJogudMCze2mB2Fib0Z*R/ScreenShot20131111at4.58.13PM.png?width=375

1 个答案:

答案 0 :(得分:2)

你需要做两件事:

  1. 在字符组[a-z0-9 *]和[a-z0-9。]
  2. 的末尾添加一个+
  3. 将文件扩展名移到括号中而不是方括号
  4. 表达式将成为:

    @http://api\.ning\.com:80/files/[a-z0-9\*]+/[a-z0-9\.]+\.(jpg|png|gif|bmp)@i
    

    可以进一步简化为:

    @http://api\.ning\.com:80/files/[\w\*]+/[\w\.]+\.(jpg|png|gif|bmp)@
    

    请注意\ w已包含大写和小写字母以及数字。因此,除非您需要文件扩展名或基本URL,否则您也可以删除i标记。