^(\d+\s+\d+\/\d+|\d+\/\d+|\d+)$
- Одна группа захвата: ()
- ^ для начала
- $ до конца
- \ s для пробела (1+) при работе с c ниже ..
- | для 3 комбинаций:
- a) int + дробь
- b) дробь
- c) int
Вам все еще придется иметь дело с верхними тяжелыми дробями с дополнительным кодом, опрашивающим группы захвата.
Чтобы расширить это .., следующая настройка будет способствовать этому.
^(\d+\s+(\d+)\/(\d+)|(\d+)\/(\d+)|\d+)$
Затем вы нужно будет либо посмотреть либо:
- захват группы 4 и 5, если речь идет только о дроби (b), либо
- захват группы 2 и 3, если речь идет о целых плюс дробь ( а)
Итак, чтобы уточнить, для 5 3/4: группы захвата:
1 = 5 3/4
2 = 3
3 = 4
Для 2/3: Группы захвата:
1 = 2/3
4 = 2
5 = 3
И если вы хотите также опросить целые числа ..
^(\(d+)\s+(\d+)\/(\d+)|(\d+)\/(\d+)|\d+)$
Это будет шунтировать группу захвата 2-> 3, 3-> 4, 4-> 5, 5-> 6 выше .. и группа захвата 2 теперь даст вам целое число также для сценария а). Группа захвата 1 будет целым числом для сценария c).
Вы можете увидеть его в действии здесь .