javascript - 检测复杂的骰子格式

标签 javascript regex

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

该程序主要按预期工作,例如,如果页面包含 1d61d6 + 3d201d6 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*))*)

参见 https://regex101.com/r/Ap0HZw/1为了解释

关于javascript - 检测复杂的骰子格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51745572/

相关文章:

c# - 如何在一个长字符串中找到所有以 '$' 符号开头并以空格结尾的单词?

python - 根据字符串中的特定逗号有选择地将字符串拆分为元组列表

Javascript 正则表达式用于包含数字的字符串

javascript - Muses 广播播放器 css 而不是皮肤文件

php - 正则表达式从字符串中删除所有单个字符

javascript - 正则表达式更改 html 标签内的文本

javascript - 如何用javascript抓取HTML表格内容?

javascript - TLS WebSocket 服务器与 firefox 客户端一起工作,但不与 chrome 客户端一起工作

javascript - jQuery .data(),需要接受数组元素作为键或找到替代方案(JSON?)

javascript - 参数从按钮到模态,然后调用 Spring Controller