正则 匹配所有成对的div
时间: 2023-04-05 18:00:44 浏览: 216
可以使用以下正则表达式来匹配所有成对的div:
```regex
/<div\b[^>]*>(.*?)<\/div>/gs
```
这个正则表达式会匹配所有以`<div>`开始,以`</div>`结束的字符串,并且会捕获这个div中间的内容。`s`标志表示让`.`匹配换行符,`g`标志表示全局匹配。
相关问题
正则 匹配所有div标签 输出div里面不包含div
可以使用以下正则表达式来匹配所有不包含div标签的div标签:
```html
<div\b(?:(?!<div\b)[\s\S])*?</div>
```
这个正则表达式会匹配所有的div标签,并且在匹配div标签的内容时,会排除掉包含div标签的内容。
php 正则匹配DIV
以下是匹配DIV的 PHP 正则表达式:
```
/<div\b[^>]*>(.*?)<\/div>/si
```
解释:
- `<div`:匹配 DIV 标签的开头;
- `\b`:单词边界,确保不会匹配到 DIV 的子串;
- `[^>]*`:匹配除了 ">" 以外的任意字符,确保 DIV 标签内的属性和值不会影响匹配结果;
- `(.*?)`:懒惰匹配,匹配 DIV 内的任意内容;
- `<\/div>`:匹配 DIV 标签的结尾;
- `/si`:正则表达式修饰符,使正则表达式忽略大小写(i)并且 "." 能够匹配换行符(s)。
使用示例:
```php
$pattern = '/<div\b[^>]*>(.*?)<\/div>/si';
$string = '<div class="content"><p>This is a DIV.</p></div>';
preg_match($pattern, $string, $matches);
print_r($matches);
```
输出结果:
```
Array
(
[0] => <div class="content"><p>This is a DIV.</p></div>
[1] => <p>This is a DIV.</p>
)
```
其中,$matches[0] 表示匹配到的整个 DIV 标签,$matches[1] 表示 DIV 内的内容。
阅读全文