要查看數據,我正在使用正則表達式。我的一個正則表達式的是(它們是動態的,變化的依據是什麼,計算機需要尋找---用他們通過對遊戲AI數據搜索):Python正則表達式Findall
O,2,([0-9],?){0,},X
2,可以後(並且很可能會)是其他數字,每個數字後面跟着一個逗號。
據我瞭解,這將匹配:
O,2,(any amount of numbers - can be 0 in total, each followed by a comma),X
這是好的,工作(在RegExr)爲:
O,4,1,8,6,7,9,5,3,X
X,6,3,7,5,9,4,1,8,2,T
O,2,9,6,7,11,8,X # matches this
O,4,6,9,3,1,7,5,O
X,6,9,3,5,1,7,4,8,O
X,3,2,7,1,9,4,6,X
X,9,2,6,8,5,3,1,X
我的問題是,我需要所有的數字後匹配原來的,提供的號碼。所以,我想匹配(在這個例子中)9,6,7,11,8
。
然而,Python實現這一點:
import re
pattern = re.compile("O,2,([0-9],?){0,},X")
matches = pattern.findall(s) # s is the above string
matches
是['8']
,最後的數字,但我需要匹配所有的數字給定(所以'9,6,7,11,8'
)之後。
注意:我需要使用pattern.findall
,因爲你會有多個匹配項(我縮短了我的字符串列表,但實際上有大約2萬個字符串),我需要找到最短的一個(因爲這將是AI獲勝的最短途徑)。
有沒有辦法匹配整個字符串(或只是我提供的最後一個數字)?
在此先感謝!
1)我不知道有多少值可以存在 2)它將有超過2萬個字符串,這將是非常單調乏味的/假設比使用正則表達式更耗費時間和資源。 –