我有这样的内容
<p>some content,paragraph 1</p> <p>some content,paragraph 2</p> <p>some content,paragraph 3</p>
我想返回第一段,即
<p>some content,paragraph 1</p>
任何人都可以帮助我使用正则表达式代码吗?
‘< p为H.;<(*); / p为H.’似乎没有用
你可以这样做:
if (preg_match('%(<p[^>]*>.*?</p>)%i',$subject,$regs)) { $result = $regs[1]; } else { $result = ""; }
你根据常规表达式测试你的字符串,如果有一些匹配,你得到第一个,只得到第一个,如果没有,$result将是一个空字符串.
如果你需要获得超过第一个结果,你可以迭代$regs数组.而且你需要找到任何其他标签更改常规expresión来加工它,例如找到你使用的IMAGE标签:
(<img[^>]*>.*?</img>)
编辑:如果你是逐行处理(只有你正在寻找的标签),你可以在表达式周围放置^ … $以匹配一个完整的行,如下所示:
if (preg_match('%^(<p[^>]*>.*?</p>)$%im',$regs)) { $result = $regs[1]; } else { $result = ""; }
HTH,问候.