Я пытаюсь запрограммировать регулярное выражение для использования в виртуальном столе (VTT) для моей игры D & D.Повторная замена и вычисление кубиков регулярного выражения
Входной сигнал представляет собой стандартную строку: «hp»; , за которым следует номер (диапазон 1-2000 иш); , за которым следует выражение в квадратных скобках (например, 2d10 + 4 означает бросок 2 десятигранных кубика и добавить четыре к сумме двух кубиков).
Числа между л.с. и костью выражением является средним баллом для выражения кости - в этом примере будет 5.5 (среднего балла по десять через кубика) раз два плюс четыре = 15. Входной строка например:
hp 15 (2d10 + 4)
Я бы хотел, чтобы регулярное выражение идентифицировало строку и заменило среднее число возможным. В приведенном выше примере замените 15 на 24. Возможно ли это с регулярным выражением? Мой VTT основан на Java - мне нужно будет вычислить максимум после определения строки, а затем заменить номер на Java, а не на регулярное выражение?
Я думаю, что у меня есть отдельные части, но заменить не удается мне:
Найти число после «л» ? < = [hH] [pP] \ s) [0-9] +
Найти 2d10 + 4 [0-9] + d [0-9] + \ s? [\ + \ -]? \ s? [^ A-Za-Z]? [0-9]?