为了账号安全,请及时绑定邮箱和手机立即绑定

用php获取<tag>和</ tag>之间的所有内容

用php获取<tag>和</ tag>之间的所有内容

慕侠2389804 2019-09-24 16:43:08
我正在尝试使用正则表达式在字符串中抓取字符串。我看了看又看,但是我似乎无法获得必须工作的任何示例。我需要获取html标签<code>和</ code>以及它们之间的所有内容。然后,我需要从父字符串中提取匹配的字符串,对两者进行操作,然后将匹配的字符串放回父字符串中。这是我的代码:$content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. &lt;code>Donec sed erat vel diam ultricies commodo. Nunc venenatis tellus eu quam suscipit quis fermentum dolor vehicula.&lt;/code>"$regex='';$code = preg_match($regex, $text, $matches);我已经尝试过这些,但是没有成功:$regex = "/<code\s*(.*)\>(.*)<\/code>/";$regex = "/<code>(.*)<\/code>/";
查看完整描述

3 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

$regex = '#<code>(.*?)</code>#';

使用#作为分隔符,而不是/因为那时我们不需要逃避/的</code>


如下所述,Phoenix .*?用来使.*(“ anything”)在遇到一个</code>(称为“非贪婪量词”)之前尽可能少地匹配字符。这样,如果您的字符串是


<code>hello</code> something <code>again</code>

您将匹配hello,again而不仅仅是匹配hello</code> something <code>again。


查看完整回答
反对 回复 2019-09-24
?
ITMISS

TA贡献1871条经验 获得超8个赞

这个功能对我有用


<?php


function everything_in_tags($string, $tagname)

{

    $pattern = "#<\s*?$tagname\b[^>]*>(.*?)</$tagname\b[^>]*>#s";

    preg_match($pattern, $string, $matches);

    return $matches[1];

}


?>


查看完整回答
反对 回复 2019-09-24
  • 3 回答
  • 0 关注
  • 702 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信