pyton 正则替换 空白 和换行 但是不处理html 标签内部
时间: 2024-05-12 12:16:22 浏览: 9
回答:您可以使用正则表达式的负向零宽断言来实现这个替换,具体操作您可以参考以下代码:
```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]+` 表示匹配一个或多个空白或换行符;`(?![^<]*>)` 表示断言右边的字符不能是 `>`,且 `>` 前面不能有任何非 `<` 字符。这样就可以保证只匹配标签外部的空白和换行符,而不会匹配标签内部的空白和换行符。
相关问题
pyton 列表元素正则替换
可以使用 re 模块中的 sub() 函数来进行正则替换,具体代码如下:
import re
lst = ['apple', 'banana', 'orange']
pattern = r'a'
replace_str = 'x'
new_lst = [re.sub(pattern, replace_str, item) for item in lst]
print(new_lst)
输出结果为:['xpple', 'bxnxnx', 'orxnge']
pyton怎么正则匹配'['和']'之间的字符串
你可以使用Python的正则表达式来匹配'['和']'之间的字符串。以下是一个示例代码:
```python
import re
string = "This is a string [with some text] inside square brackets."
# 使用正则表达式查找'['和']'之间的字符串
result = re.search(r'\[(.*?)\]', string)
# 打印结果
print(result.group(1))
```
输出结果为:`with some text`
在上述示例中,我们使用正则表达式 `\[(.*?)\]` 查找'['和']'之间的字符串,并将其存储到 `result` 变量中。然后,我们使用 `group(1)` 方法获得匹配的字符串。注意,我们在正则表达式前面加上了 `r`,这是为了将正则表达式解释为原始字符串,以避免反斜杠的转义。