簡體   English   中英

如何使用正則表達式查找字符串中的重復字符

[英]How to use Regular-Expressions find repeated characters in string

我有任務

"將單個字符轉為 '(' ,將重復的字符轉為 ')'

例如“TAAreTheBest”變成“)))())()()()”

從上面變成')'的字符是T,A,E。

所以關鍵是我想使用 REGEX 找出重復的字符並將其替換為 ')'

這些是我之前嘗試過的代碼,但對我不起作用

(\w)\1* 
([a-zA-Z])\1*
\w{2,}

我對python很陌生。 而且我想了解更多關於 REGEX 的信息,所以我認為這個任務可以使用 regex 來解決它。 所以請幫幫我。 謝謝你。

我希望它不應該從一個sub節點完成

import re

string = 'baTAAreTheBestaaaaabbbbaaaaaaa'

#1 replace chars that occur more then twice
tmp = ''
while tmp != string:
  tmp = string
  string = re.sub(r'(\w)(((.*)\1){2,})', r')\2', tmp)

#2 replace consecutive pairs (dunno why this are not handled by 3rd replace)
string = re.sub(r'(\w)\1', r'))', string)
#3 replace separate pairs
string = re.sub(r'(\w)(.*)\1', r')\2)', string)
#3 replace unique chars
string = re.sub(r'\w', '(', string)
print(string)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM