我目前正在开发一个程序,该程序可以扫描页面并突出显示掷骰子,然后让您单击以掷骰子。
该程序主要按预期工作,例如,如果页面包含 1d6
、1d6 + 3
、d20
或 1d6 x 100
它拿起并滚动它。但是,我希望能够检测更复杂的 Angular 色,例如 1d20 + 4 1d12 + 12
,然后将其解析为各个 Angular 色。我想避免检测像 1d20 + 4 the 1d12 + 12
这样的东西,基本上,避免在掷骰子时用单词而不是空格的东西。
我的脚本使用正则表达式来匹配页面上的模式并突出显示它们。我不确定这是否可以添加到我的正则表达式中,因为这确实是我学习正则表达式的项目。这是我正在使用的当前正则表达式
([+−-]\d+)|(([1-9]\d*)?d([1-9]\d*)\s*([+-−]\s *\d+)?([,]\s*\d+)?)
还有一个关于 https://regexr.com/3tl1o 的样本
最佳答案
我想这就是你想要的
((?:[+-]?[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*))*)
关于javascript - 检测复杂的骰子格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51745572/