Python 使用正则匹配的方式处理获取的文本信息,匹配到关键词“单位”、“局”、“处”,就去掉这三个关键词所在的行,并在文本最上方添加一行特定信息,然后将最后的结果赋值给变量用于输出
时间: 2024-04-11 09:26:38 浏览: 22
以下是一个示例代码来演示如何使用正则表达式处理获取的文本信息,匹配到关键词"单位"、"局"、"处"后去掉这三个关键词所在的行,并在文本最上方添加一行特定信息,最后将结果赋值给变量并输出:
```python
import re
def process_text(text):
keyword_pattern = re.compile(r'\b(?:单位|局|处)\b', re.IGNORECASE) # 匹配关键词的正则表达式模式
lines = text.split('\n') # 将文本按行分割成列表
# 使用列表推导式过滤掉包含关键词的行
filtered_lines = [line for line in lines if not keyword_pattern.search(line)]
# 在过滤后的行列表最上方添加特定信息行
filtered_lines.insert(0, "这是添加的特定信息行。")
# 将过滤后的行重新拼接成文本
processed_text = '\n'.join(filtered_lines)
return processed_text
# 示例用法
original_text = """
这是第一行。
这是包含关键词“单位”的行。
这是不包含关键词的行。
这是包含关键词“局”的行。
这是包含关键词“处”的行。
"""
processed_text = process_text(original_text)
print(processed_text)
```
在上述示例代码中,我们定义了一个函数 `process_text`,它接受一个参数 `text`,表示原始文本。
首先,我们使用 `re.compile` 函数构建一个正则表达式模式,其中 `r'\b(?:单位|局|处)\b'` 表示匹配关键词"单位"、"局"、"处",`re.IGNORECASE` 表示忽略大小写。
然后,我们使用 `split('\n')` 方法将原始文本按行分割成一个列表。
接下来,我们使用列表推导式来过滤掉包含关键词的行,通过 `keyword_pattern.search(line)` 来判断是否匹配到关键词。
然后,我们使用 `insert(0, "这是添加的特定信息行。")` 方法在过滤后的行列表最上方添加特定信息行。
最后,我们使用 `join` 方法将过滤后的行重新拼接成文本,并将结果赋值给变量 `processed_text`。
示例中的输出将是原始文本去掉包含关键词的行,并在最上方添加特定信息行后的结果。
请注意,这只是一个简单的示例,你可以根据实际需求对正则表达式进行调整,并根据文本的具体格式进行适当的处理。