我試圖捕捉如果在一個字符串使用正則表達式中出現兩次一個字母(?也許有一些更好的方法),例如我的字符串是:查找字符串「出現兩次,一個字母」
ugknbfddgicrmopn
輸出將是:
dd
不過,我想是這樣:
re.findall('[a-z]{2}', 'ugknbfddgicrmopn')
但在這種情況下,換貨政... RNS:
['ug', 'kn', 'bf', 'dd', 'gi', 'cr', 'mo', 'pn'] # the except output is `['dd']`
我也有一種方式來獲得的期望輸出:
>>> l = []
>>> tmp = None
>>> for i in 'ugknbfddgicrmopn':
... if tmp != i:
... tmp = i
... continue
... l.append(i*2)
...
...
>>> l
['dd']
>>>
但是,這太複雜了......
如果僅是'abbbcppq'
,然後catch:
abbbcppq
^^ ^^
所以輸出:
['bb', 'pp']
然後,如果它是'abbbbcppq'
,抓bb
兩次:
abbbbcppq
^^^^ ^^
所以輸出:
['bb', 'bb', 'pp']
您可以使用反向引用,['([AZ])\ 1'](https://regex101.com/r/wT7cA9/1 ) – Tushar
你似乎期望 - 但不提 - 連續性,而且如果存在「ddd」,你就不會解釋你想要什麼。 – DSM
@kevin如果信件出現超過兩次>>? –