[英]Regex how to match all number pairs, even when nested?
我需要通過正則表達式計算文本字符串中的所有數字對,即使嵌套也是如此。 我想讓它識別任何數字,然后再識別任何數字。
例如,輸入字符串是Hello1233。 因此,將識別出“ 12”,“ 23”和“ 33”,並且數字對的匹配為3。使用\\ d \\ d之類的東西對我來說並沒有獲得中間的數字對(“ 23”) 。 它只捕獲2個匹配項,而不是3個。
在另一個示例中,Hello155786將標識“ 15”和“ 55”以及“ 57”和“ 78”和“ 86”作為匹配項。 \\ d \\ d僅獲得3場比賽,而不是我正在尋找的5場比賽。
如何通過正則表達式來識別所有數字對,甚至是中間的數字對呢?
看一下以下內容。 我想你很親密。 這是一個Python示例,但是對於任何環境,想法都是相同的:
import re
re.findall(r'(?=(\d\d))', 'hello1233')
['12', '23', '33']
re.findall(r'(?=(\d\d))', 'hello155786')
['15', '55', '57', '78', '86']
您將需要前瞻性斷言來執行此任務,因此將正則表達式從(\\d\\d)
更改為(?=(\\d\\d))
。
從文檔:
(?= ...)如果...下一個匹配,則匹配,但不使用任何字符串。 這稱為先行斷言。 例如,僅當以撒(?= Asimov)后跟“以撒”時,它才會與“以撒”匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.