簡體   English   中英

查找一個字符的最長連續序列

[英]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.

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