我有一个文本句子列表,并且有很多单词,例如aaaaa,zzzzz,eeer,qqqqqqq ...
我正在寻找一种将其从我的文本句子中删除的方法。
text = I'm a really good aaaaaa eeeeer jjjjj llll bb
我不知道可以使用什么正则表达式,因此可以完全删除这些单词。像
这样的边缘情况1) aaaaae (you will have one another character at the end)
2) brrrrrr (another character at the beginning)
我正在寻找这样的输出
text = I'm really good
我只是不知道该怎么做。
答案 0 :(得分:1)
\b(?:\w(\w)\1+|(\w)\2+\w|(\w)\3+)\b
https://regex101.com/r/iDVkRT/1
\b
(?:
\w
( \w ) # (1)
\1+
| ( \w ) # (2)
\2+ \w
| ( \w ) # (3)
\3+
)
\b
答案 1 :(得分:1)
import re
text = "I'm a really good aaaaaa eeeeer jjjjj llll bb"
out = re.sub(r"\w*(.)\1{3,}\w*", r"", text)
print(out)
>> I'm a really good bb
因此,此RegEx将查找具有3个重复或更多重复字符的字符串,即使它位于字符串的开头,中间或结尾。
r'\ s(。)\ 1 {1,} \ s“可能会捕获类似“ bb”的东西
答案 2 :(得分:1)
re.sub(r'\s\b(\S)\1+\S*','',text)
"I'm a really good"
编辑:从评论开始。看来其他单词的用法有所不同:
re.sub(r'\s\S*(.)(?:\1{2,}\S*|\1+\b\S*)','',text)