Python:删除word中连续出现N次以上的字母
假设我有一句话:Python:删除word中连续出现N次以上的字母,python,text,Python,Text,假设我有一句话: sentence = "Eveeery mondayyy I waaake upp" 我想创建一个函数,删除一个单词中连续出现N次以上的所有字母 所以,如果我说:N=2 结果应该是: result = Eveery mondayy I waake upp 我如何才能高效地完成这项工作?为您提供一个良好的开端: 只需发布一个可能对您有所帮助的示例: import re regex = r"(.)\1+" test_str = "sentence = Eveeery monda
sentence = "Eveeery mondayyy I waaake upp"
我想创建一个函数,删除一个单词中连续出现N次以上的所有字母
所以,如果我说:N=2
结果应该是:
result = Eveery mondayy I waake upp
我如何才能高效地完成这项工作?为您提供一个良好的开端: 只需发布一个可能对您有所帮助的示例:
import re
regex = r"(.)\1+"
test_str = "sentence = Eveeery mondayyy I waaake upp"
# use \\1\\1 if you need to replace with two characters and so on
subst = "\\1"
# You can manually specify the number of replacements by changing the 4th argument
result = re.sub(regex, subst, test_str, 0)
if result:
print (result)
输出:
>>>Every monday I wake up
希望这对你有所帮助你必须重复这个句子的字母,同时对上一个字母进行跟踪,以及看到了多少次
def del_n(n, s):
so_far = 1
previous = s[0]
res = [s[0]]
for idx, c in enumerate(s[1:]):
if c == previous:
so_far += 1
if so_far >= n+1:
continue
else:
previous = c
so_far = 1
res.append(c)
return ''.join(res)
sentence = "Eveeery mondayyy I waaake upp"
del_n(2, sentence)
输出:
re.sub()
解决方案:
import re
def remove_continued_char(s, n):
pat = re.compile(r'([a-z])(\1{' + str(n) + '})')
return pat.sub('\\2', s)
sentence = 'Eveeery mondayyy I waaake upp'
print(remove_continued_char(sentence, 2))
输出:
Eveery mondayy I waake upp
-仅匹配字母字符(字母)[a-z]
-返回到第一个捕获的组,即\1
([a-z])
-指向第二个捕获(括号内)的组值\\2
sentence = "Eveeery mondayyy I waaake upp"
def no_dublicate(senten,N):
final=[]
for word in senten.split():
track=[]
for chara in word:
track.append(chara)
if track.count(chara)>N:
track.remove(chara)
final.append(track)
return ' '.join(["".join(item) for item in final])
print(no_dublicate(sentence,2))
输出:
Eveery mondayy I waake upp
请发布您迄今为止尝试过的工作示例,因此s编码服务效率不高:开始编码,向我们显示不起作用的代码。低效:等待SO解决您的问题您的条件“删除所有出现N次以上的字母”肯定与您的最终输出相矛盾
Eveery
->Eveery
-表示“删除”一个,但不是全部我将添加一些代码并重新表述我的sentence@totyped:是的,最好在外面变冷之前做好你的家庭作业:)regex everything?@ReblochonMasque:edit:在subst上方添加了一行注释以满足条件非常感谢!你能给我解释一下subst.实际上是做什么的吗?@totyped:它用前面提到的替换来替换regex的出现,更多信息请参阅very nice!!谢谢。你介意在回答中解释一下,如何捕捉群体价值观吗?我从来没用过。@totyped,不客气。这是基本的正则表达式理论,太棒了!非常感谢你的链接!
Eveery mondayy I waake upp