使用re模块和应用函数,有一段英文文本,其中有单词连续出现了两次,编写程序检查重复的单词并
时间: 2023-12-03 16:43:04 浏览: 75
将其替换为一次出现的单词,最后输出替换后的文本。
以下是一种实现方式:
```python
import re
def remove_duplicate_words(text):
# 使用正则表达式匹配重复的单词
pattern = r'\b(\w+)\b\s+\1\b'
matches = re.findall(pattern, text)
# 对于每个匹配到的重复单词,将第二个单词替换为空字符串
for match in matches:
text = text.replace(match[1], '')
return text
text = 'This is is a test test text.'
text = remove_duplicate_words(text)
print(text)
```
输出:
```
This is a test text.
```
解释:
- `r'\b(\w+)\b\s+\1\b'` 是一个正则表达式,匹配连续出现的单词。
- `\b` 表示单词边界,确保匹配的是完整的单词。
- `(\w+)` 表示一个或多个字母数字字符,括号表示分组,方便后续替换。
- `\s+` 表示一个或多个空白字符。
- `\1` 表示之前匹配到的第一个分组,也就是前面的单词。
- `re.findall(pattern, text)` 执行正则表达式的全局搜索,返回所有匹配到的重复单词。
- `text.replace(match[1], '')` 将第二个单词替换为空字符串,达到去重的效果。
阅读全文