php匹配div的正则
时间: 2023-08-24 21:07:26 浏览: 83
以下是一个简单的 PHP 正则表达式,可以匹配 HTML 代码中的 div 标签:
```php
preg_match_all("/<div.*?>.*?<\/div>/si", $html, $matches);
```
其中,$html 是包含 HTML 代码的字符串,$matches 是存储匹配结果的数组。这个正则表达式会匹配所有的 div 标签,包括其中的内容和属性,忽略大小写。如果需要匹配特定属性的 div 标签,可以使用类似以下的正则表达式:
```php
preg_match_all("/<div\s+class=\"my-class\".*?>.*?<\/div>/si", $html, $matches);
```
这个正则表达式只会匹配 class 属性为 "my-class" 的 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 内的内容。
php 根据class 正则匹配DIV
以下是一个例子,可以匹配HTML中所有class为"my-class"的div标签:
```php
$html = '<div class="my-class">This is a div with class "my-class".</div><div class="other-class">This is a div with class "other-class".</div>';
preg_match_all('/<div class="my-class".*?>.*?<\/div>/s', $html, $matches);
print_r($matches);
```
输出结果为:
```
Array
(
[0] => Array
(
[0] => <div class="my-class">This is a div with class "my-class".</div>
)
)
```
解释一下正则表达式:
`/<div class="my-class".*?>.*?<\/div>/s`
- `<div class="my-class"`:匹配div标签的开头,且class属性为"my-class"
- `.*?`:匹配任意字符,且尽可能少
- `<\/div>`:匹配div标签的结尾
最后的`s`修饰符表示"."也可以匹配换行符。
阅读全文