php 正则 去掉<p> </p>里面的空格
时间: 2023-07-09 14:32:31 浏览: 78
去掉字符串前后所有空格的正则表达式
5星 · 资源好评率100%
您好,要去掉 PHP 字符串中 `<p>` 和 `</p>` 标签内部的空格,可以使用 PHP 的 `preg_replace` 函数结合正则表达式来实现。以下是一个示例代码:
```php
$str = '<p> This is a string with spaces. </p>';
$newStr = preg_replace('/<p.*?>(.*?)<\/p>/s', function($matches) {
return '<p>' . preg_replace('/\s+/', '', $matches[1]) . '</p>';
}, $str);
echo $newStr;
```
解释一下上述代码:
- `$str` 是一个包含 `<p>` 和 `</p>` 标签的字符串。
- `preg_replace('/<p.*?>(.*?)<\/p>/s', ...)` 使用正则表达式匹配 `<p>` 和 `</p>` 标签及其内容,并将其替换为一个新的字符串。其中:
- `<p.*?>` 表示匹配 `<p>` 标签及其属性。
- `(.*?)` 表示匹配 `<p>` 和 `</p>` 标签之间的任意字符,并将匹配结果存储在 `$matches[1]` 中。
- `<\/p>` 表示匹配 `</p>` 标签。
- `/s` 修饰符表示让 `.` 匹配任意字符,包括换行符。
- `...` 中的函数用于替换匹配到的字符串。
- `function($matches) { ... }` 是一个匿名函数,用于处理匹配到的字符串。其中:
- `preg_replace('/\s+/', '', $matches[1])` 使用正则表达式将 `$matches[1]` 中的空格替换为空字符串。
- `return '<p>' . ... . '</p>'` 返回替换后的字符串,并在两端加上 `<p>` 和 `</p>` 标签。
- `$newStr` 是替换后的字符串。
- `echo $newStr` 输出替换后的字符串。
以上代码将会输出 `<p>Thisisastringwithspaces.</p>`,其中 `<p>` 和 `</p>` 标签内部的空格被替换成了空字符串。
希望这能够帮到您!如果还有其他问题,请随时问我。
阅读全文