pyton 正则替换 空白 和换行 但是不处理html 标签内部
时间: 2024-05-12 15:16:22 浏览: 72
Python使用正则表达式过滤或替换HTML标签的方法详解
回答:您可以使用正则表达式的负向零宽断言来实现这个替换,具体操作您可以参考以下代码:
```python
import re
# 定义需要替换的文本
text = """
<p> 欢迎来到我的博客 </p>
<div> 这里是第一段文字 </div>
<div> 这里是第二段文字 </div>
"""
# 定义正则表达式
pattern = r"(?<!<[^>]*)[\s\n]+(?![^<]*>)"
# 进行替换操作
result = re.sub(pattern, "", text)
# 输出替换后的结果
print(result)
```
上述代码中,正则表达式 `(?<!<[^>]*)[\s\n]+(?![^<]*>)` 中的 `(?<!<[^>]*)` 表示断言左边的字符不能是 `<`,且 `<` 后面不能有任何非 `>` 字符;`[\s\n]+` 表示匹配一个或多个空白或换行符;`(?![^<]*>)` 表示断言右边的字符不能是 `>`,且 `>` 前面不能有任何非 `<` 字符。这样就可以保证只匹配标签外部的空白和换行符,而不会匹配标签内部的空白和换行符。
阅读全文