php 正则匹配div内容,结果不含div标签
时间: 2023-07-18 14:30:28 浏览: 127
在 PHP 中,您可以使用 `preg_match` 函数来匹配正则表达式。以下是一个示例代码,可以匹配一个 div 元素中的内容并去掉 div 标签:
```php
$html = '<div class="my-div">Hello, world!</div>';
$pattern = '/<div\b[^>]*>(.*?)<\/div>/s';
preg_match($pattern, $html, $matches);
if ($matches) {
$content = $matches[1];
$content = strip_tags($content); //去掉 HTML 标签
echo $content;
}
```
解释:
- `/<div\b[^>]*>(.*?)<\/div>/s` 是一个正则表达式,可以匹配 div 元素的内容。`/s` 标记表示让 `.` 匹配任何字符,包括换行符。
- `preg_match($pattern, $html, $matches)` 函数执行正则表达式匹配,将匹配结果存储在 `$matches` 数组中。
- `$matches[1]` 是匹配结果中第一个括号内的内容,即 div 元素中的内容。
- `strip_tags` 函数可以去掉字符串中的 HTML 标签,从而得到纯文本内容。
在实际使用中,您可能需要根据具体的需求来修改正则表达式和处理结果的方式。
相关问题
正则 匹配所有div标签 输出div里面不包含div
可以使用以下正则表达式来匹配所有不包含div标签的div标签:
```html
<div\b(?:(?!<div\b)[\s\S])*?</div>
```
这个正则表达式会匹配所有的div标签,并且在匹配div标签的内容时,会排除掉包含div标签的内容。
阅读全文