xinbc65abcom
立早成章
采纳率0%
2015-03-19 18:32

请教php正则匹配时斜杠或冒号引起的问题

preg_match_all("/>[\w+=\".*\"\s]+</", $xml, $pre);

我用正则去匹配类似下面的字符串:

src1="111" src2="bb" src3="ccc"

匹配结果是:>src1="111" src2="bb" src3="ccc" < ,这样可以得到正确的结果。

但是我的目标字符串里面有网址时就会出问题,如下:

src1="http://baidu.com/" src2="bb" src3="ccc"

这样运行后匹配不到任何东西。

我的正则表达式是这样写的 \w+=\".*\"\ 用来匹配src1="http://baidu.com/"这一段。也就是.*代表所有内容,但是当引号中有/或者冒号时都匹配不出来,求大神指导哈,谢谢啦

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • qq_34056774 Telkobe 4年前

    $str='src1="http://baidu.com/" src2="bb" src3="ccc" feferfefefefefe';
    preg_match_all("/src\d{1,9}=\S+/",$str,$data);
    print_r($data);die;

    点赞 评论 复制链接分享
  • a469464794 肖桥 6年前

    我没太懂你想要得到什么

    .*?<(如果只是简单的得到你要的结果 )
    (\w*=\".*?\"\s*)+<
    \w*=\".*?\"\s*\w*=\".*?\"\s*\w*=\".*?\"\s*<(或者)
    注意你的表达式.*后面如果没加符号? 很有可能出错

    点赞 评论 复制链接分享
  • u011043843 会飞的Pikachu 6年前
    点赞 评论 复制链接分享

相关推荐