【问题标题】:Warning: preg_match() [function.preg-match]: Unknown modifier '/' [duplicate]警告:preg_match() [function.preg-match]:未知修饰符“/”[重复]
【发布时间】:2011-03-20 15:53:53
【问题描述】:

我正在尝试使用 preg_match 来返回页面源代码中包含在 " " 中的所有 URL。

我使用的代码是

preg_match('"http://(.+?)\"', $code, $matches);

我收到以下错误:

Warning: preg_match() [function.preg-match]: Unknown modifier '/' in .... on line 13

【问题讨论】:

    标签: php preg-match


    【解决方案1】:

    试试这个:

    preg_match('"http:\/\/(.+?)\"', $code, $matches);
    

    【讨论】:

      【解决方案2】:
      preg_match('~"http://(.*)"~iU', $code, $matches);

      您的问题是您需要分隔符(我选择了 ~)才能与该模式一起使用。有关详细信息,请参阅 preg_match() 手册页。

      【讨论】:

      • 等等,认真的吗?你可以选择任何你想要的分隔符吗?我只用过/,而且肯定有一些情况(像这样)使用其他东西会更方便! +1!
      • 谢谢...像魅力一样工作!
      • @JGB146:嗯,几乎任何。您可以选择任何非字母数字、非反斜杠、非空白字符作为分隔符。
      • ~ 如果您要匹配 url 编码的字符串,则特别有用,因为 ~ 是一个不需要编码且不会出现在正则表达式中的字符,即 [^!#$&'( )*+,/:;=?@[\]]+
      猜你喜欢
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多