我想編寫一個正則表達式在我的D & D遊戲的虛擬桌面(VTT)中使用。特定的正則表達式滾動替換和計算
輸入是一個標準字符串:「hp」; 後跟一個數字(範圍1-2000 ish); 後跟括號內的骰子表達式(例如2d10 + 4表示擲骰2個骰子,並將兩個骰子的總和相加)。
馬力和骰子表達之間的數字是骰子表達的平均得分 - 在這個例子將是5.5(在10個骰子的平均分數)次二加四= 15輸入字符串例如:
hp 15(2d10 + 4)
我想要一個正則表達式來識別字符串,並用可能的最大滾動替換平均數。在上面的例子中,用24替換15。用正則表達式可能嗎?我的VTT是基於Java的 - 我是否需要在識別字符串之後計算最大值,然後用Java而不是正則表達式替換數字?
我想我有單個塊,但取而代之的是失敗的我:
查找「HP」 後的數字? s] [0-9] +
找到2d10 + 4 [0-9] + d [0-9] + \ s?[\ + \ - ]? \ S?[^ A-ZA-Z] [0-9]?