请教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个回答

我没太懂你想要得到什么

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

a469464794
肖桥 不好意思 表达式前面漏掉了符号>
5 年多之前 回复

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐