我正在尝试使用正则表达式在字符串中抓取字符串。我看了看又看,但是我似乎无法获得必须工作的任何示例。我需要获取html标签<code>和</ code>以及它们之间的所有内容。然后,我需要从父字符串中提取匹配的字符串,对两者进行操作,然后将匹配的字符串放回父字符串中。这是我的代码:$content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. <code>Donec sed erat vel diam ultricies commodo. Nunc venenatis tellus eu quam suscipit quis fermentum dolor vehicula.</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。
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];
}
?>
- 3 回答
- 0 关注
- 702 浏览
添加回答
举报
0/150
提交
取消