Regex 将字符串中具有多个可能位置的元素与正则表达式匹配
我目前正在开发一个骰子辊,它接受表达式,以便处理用户要求的骰子辊 表达式可以采用以下形式(最长):Regex 将字符串中具有多个可能位置的元素与正则表达式匹配,regex,Regex,我目前正在开发一个骰子辊,它接受表达式,以便处理用户要求的骰子辊 表达式可以采用以下形式(最长):2d8(*2)(+20)[reroll=1]。 我想做的是一个正则表达式,它将检查表达式是否结构良好,我已经做了: /^(\d+d\d+(\([\*]\d+\))?(\([\+]\d+\))?(\[reroll(>|=|<)\d+\])?[\+$]){1,}/ 有没有一种方法可以做我想做的事情,而不用做一个重复太多的很长的正则表达式 谢谢你的回答。由于滚动的语法相当复杂,为什么不编写一
2d8(*2)(+20)[reroll=1]
。
我想做的是一个正则表达式,它将检查表达式是否结构良好,我已经做了:
/^(\d+d\d+(\([\*]\d+\))?(\([\+]\d+\))?(\[reroll(>|=|<)\d+\])?[\+$]){1,}/
有没有一种方法可以做我想做的事情,而不用做一个重复太多的很长的正则表达式
谢谢你的回答。由于滚动的语法相当复杂,为什么不编写一个解析器而不是使用一个巨大的正则表达式呢?你的意思是它们出现的顺序可能会有所不同,除了2d8,它总是一个开始?谢谢你的回答,我相信编写一个解析器可能是一个更好的主意。
2d8(+20)(*2)[reroll=1]
2d8(*2)(+20)[reroll=1]
2d8(+20)[reroll=1](*2)
2d8(*2)[reroll=1](+20)