富文本中敏感词汇保存的时候用*保存脱敏,实现方法
时间: 2024-03-01 10:52:49 浏览: 99
可以使用正则表达式来替换敏感词汇为*,以下是一个简单的示例代码:
```python
import re
# 敏感词汇列表
sensitive_words = ['敏感词汇1', '敏感词汇2', '敏感词汇3']
# 要进行脱敏的富文本内容
rich_text = '这是一段包含敏感词汇1、敏感词汇2和敏感词汇3的富文本内容'
# 使用正则表达式替换敏感词汇为*
for word in sensitive_words:
regex = re.compile(word, re.IGNORECASE) # 忽略大小写
rich_text = regex.sub('*' * len(word), rich_text)
print(rich_text)
```
输出结果为:
```
这是一段包含***、***和***的富文本内容
```
代码中的 `re.compile` 方法用于编译正则表达式,可以提高正则表达式的重复使用效率。`re.IGNORECASE` 参数表示忽略大小写。`'*' * len(word)` 表示生成与敏感词汇长度相同的星号字符串。最后输出脱敏后的富文本内容。
相关问题
如何将富文本中的敏感词汇脱敏,替换成*号
可以使用正则表达式来匹配富文本中的敏感词汇,并将它们替换成*号。以下是示例代码:
```python
import re
# 定义敏感词汇列表
sensitive_words = ["敏感词汇1", "敏感词汇2", "敏感词汇3"]
def replace_sensitive_words(text):
# 构建正则表达式,使用 | 连接多个敏感词汇
pattern = re.compile('|'.join(sensitive_words))
# 使用 * 替换匹配到的敏感词汇
return pattern.sub('*', text)
# 示例文本
text = "这是一段包含敏感词汇1和敏感词汇2的富文本。"
# 替换敏感词汇
text = replace_sensitive_words(text)
print(text) # 输出:这是一段包含***和***的富文本。
```
注意,这种方法只能替换纯文本中的敏感词汇,如果富文本中包含图片、视频等非文本内容,则无法处理。此外,敏感词汇的匹配和替换也需要谨慎处理,避免误伤或漏检。
python编写身份证脱敏程序。身份证和手机号脱敏是指将身份证中有关出生年月日的信息和手机中间4位数,用***表示,并将脱敏后的数据按照原文件的格式保存在文件中。如: 350101********1234,137****0010。
以下是Python编写身份证脱敏程序的示例代码:
```python
import re
def id_card_desensitization(id_card):
# 判断身份证号码是否合法
if not re.match(r'^\d{17}[\dX]$', id_card):
return '身份证号码不合法'
# 身份证号码脱敏
return id_card[:6] + '********' + id_card[14:]
def phone_desensitization(phone):
# 判断手机号码是否合法
if not re.match(r'^1\d{10}$', phone):
return '手机号码不合法'
# 手机号码脱敏
return phone[:3] + '****' + phone[7:]
# 读取文件
with open('input.txt', 'r') as f:
data = f.read()
# 身份证号码脱敏
data = re.sub(r'\b\d{17}[\dX]\b', lambda x: id_card_desensitization(x.group()), data)
# 手机号码脱敏
data = re.sub(r'\b1\d{2}\d{4}\d{4}\b', lambda x: phone_desensitization(x.group()), data)
# 将脱敏后的数据按照原文件的格式保存在文件中
with open('output.txt', 'w') as f:
f.write(data)
```
该程序使用正则表达式判断身份证号码和手机号码是否合法,并对其进行脱敏处理。脱敏后的数据按照原文件的格式保存在文件中。
阅读全文