![](/img/trans.png)
[英]Finding longest sequence of consecutive repeats of a substring within a string
[英]Finding longest consecutive sequence of a character
假設我們有一個類似'wqaaaaaeda a'
的字符串,我想找到長度至少為2的最長序列'a'
,在上面的示例中為'aaaa a'
。 我嘗試了以下方法:
re.findall(r'(a a a*)', text)
但它只會給出最短的匹配。 然后我嘗試了:
re.findall(r'([^a] a a a* [^a])', text)
但是上述示例字符串的結果為空。 我怎樣才能做到這一點?
那是因為你你們之間有空格a
字符。 您可以使用與長度為5或更大的a
和space的任意組合匹配的字符類:
>>> re.findall(r'([a ]{5,})', text)
[' a a a a a ']
還要注意的是,你並不需要一個捕獲組整體的正則表達式的周圍,在這種情況下,你可以使用一個無捕獲組與a
和空間(拒絕短圖案匹配),因為你只想要一個你的比賽可以使用re.search()
:
>>> M = re.search(r'(?:a ){2,}', text)
>>>
>>> M.group(0)
'a a a a a '
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.