我正在为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位或更多位] –