检测复杂的骰子格式

时间:2018-08-08 11:28:18

标签: javascript regex

我目前正在开发一个程序,该程序可以扫描页面并突出显示骰子掷骰,然后让您单击以掷骰子。

该程序通常可以按预期运行,例如,如果页面包含1d61d6 + 3d201d6 x 100之类的东西,它将拾取并滚动。但是,我希望能够检测到更复杂的角色,例如1d20 + 4 1d12 + 12,然后将其解析为各个角色。我想避免检测类似1d20 + 4 the 1d12 + 12之类的东西,基本上要避免在骰子卷中包含单词而不是空格的东西。

我的脚本使用正则表达式来匹配页面上的模式并突出显示它们。我不确定这是否可以添加到正则表达式中,因为这确实是我学习正则表达式的项目。这是我正在使用的当前正则表达式

([+−-]\d+)|(([1-9]\d*)?d([1-9]\d*)\s*([+-−]\s*\d+)?([,]\s*\d+)?)

还有https://regexr.com/3tl1o

上的示例

1 个答案:

答案 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

相关问题