duandong2562 2011-03-31 21:35
浏览 13
已采纳

preg的小问题全部匹配

what's the problem with the follow? It does not echo something..

$string = '<embed src="http://www.youtube.com/v/XBH1dcHoL6Y&rel=0&hl=en_US&feature=player_embedded&­version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"></embed>'; 

preg_match('#<embed[^>]+>.+?http://www.youtube.com/v/([A-Za-z0-9\-_]+).+?</embed>#s', $string, $matches); 
echo $matches[1];
  • 写回答

3条回答 默认 最新

  • douliu3831 2011-03-31 21:40
    关注

    Because of this: <embed[^>]+>.+?http. That means:

    1. match the string <embed
    2. followed by one or more characters that is not >
    3. followed by a >
    4. followed by any number of characters (non-greedily)
    5. followed by http

    Your string does not match those criteria because you don't have a > before your http. If you remove the [^>]+> bit your regular expression should match.

    Now you know one of the problems with parsing HTML with a regular expression. You shouldn't. You should use a DOM parser instead.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?