我正在爲DnD需求編寫助手腳本,部分腳本應接受整數或骰子符號。後者是在如何在Python正則表達式中搜索多個條件?
1d20+4
的格式,其中我可以用任何整數替換1
,20
與和自然數,和+4
。輸入可以看起來像
hit +3 damage 1d8+1 hp 3d6+2
而且我使用re
將它分成兩個列表。問題是,當我嘗試檢測死亡和數字。我知道,要檢測一些我需要使用
re.listall('[\+\-][0-9]*',input_line)
和檢測死我需要尋找
re.listall('[0-9]*d[0-9]*',input_line)
而且我相當肯定,以搜索與模具獎金我需要
re.listall('[0-9]*d[0-9]*[\+\-][0-9]*',input_line)
但是,我無法計算如何搜索兩者的組合。我雖然對將它們放置在括號,即
re.listall('([\+\-][0-9]*)([0-9]*d[0-9]*)',input_line)
但是,我得到一個錯誤sre_constants.error: unbalanced parenthesis
這讓我困惑。我該如何克服這一點?
謝謝,我該如何給出兩位數的選項?例如''hit + 12'' – Yotam
我給你的正則表達式應該已經做到了......'\ d +'意味着一個或多個[0-9]數字。所以它應該匹配[1位或更多位] d [1位或更多位]的可選序列,然後匹配+或 - 符號,然後[1位或更多位] –