我目前正在开发一个程序,该程序可以扫描页面并突出显示骰子掷骰,然后让您单击以掷骰子。
该程序通常可以按预期运行,例如,如果页面包含1d6
,1d6 + 3
,d20
或1d6 x 100
之类的东西,它将拾取并滚动。但是,我希望能够检测到更复杂的角色,例如1d20 + 4 1d12 + 12
,然后将其解析为各个角色。我想避免检测类似1d20 + 4 the 1d12 + 12
之类的东西,基本上要避免在骰子卷中包含单词而不是空格的东西。
我的脚本使用正则表达式来匹配页面上的模式并突出显示它们。我不确定这是否可以添加到正则表达式中,因为这确实是我学习正则表达式的项目。这是我正在使用的当前正则表达式
([+−-]\d+)|(([1-9]\d*)?d([1-9]\d*)\s*([+-−]\s*\d+)?([,]\s*\d+)?)
答案 0 :(得分:0)
我想这就是你想要的
((?:[+-]?[1-9]\d*)?d[1-9]\d*(?:\s+[-+x]\s+[1-9]\d*)?(?:\s+(?:[+-]?[1-9]\d*)?d[1-9]\d*(?:\s+[+-x]\s+[1-9]\d*))*)
有关爆炸的信息,请参见https://regex101.com/r/Ap0HZw/1