正则表达式在标签<p> </p>中获取字符串

时间:2018-12-30 15:35:44

标签: php regex

我有此代码:

$body = '<p>awesometext:data</p>';
preg_match_all("/<p>([^<]+)<\/p>/", $body, $matches);
$string = array_map('trim', $matches[1]);

结果是我得到了空数组$string。我该如何解决?

字符串可以是更多。示例:

$body = '<p>awesometext:data</p><p>othertext:data</p><p>sss:sddd</p>'; //e.t.c

1 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,那么可以在p标签中获取字符串,您可以:

let str = '<p>awesometext:data</p><p>othertext:data</p><p>sss:sddd</p>';
let matches = str.replace(/<p>|<\/p>/gi, ' ').trim().match(/([a-z]+?:[a-z]+)/gi);

matches将返回字符串数组。请注意,上面的表达式不能解决极端情况。即前导/尾随空格等