Я новичок в RegEx, работая в Visual Studio (C++), и мне нужно проверить, является ли вход допустимой смешанной долей.
Пока что у меня есть работы для всех случаев, за исключением того, что я хочу убедиться, что знаменатель не может быть 0 (например, 2 3/0).
Здесь RegEx, который я сейчас использую:
regex mixedFraction("(-?[[:digit:]]+)[\\s]([[:digit:]]+)[/]([[:digit:]]+)")
Я пробовал варианты, но не могу понять, что работает. В сущности, мне просто нужно проверить, что только первая цифра знаменателя не равна 0 - для него будет ошибкой провалить проверку, если кто-то должен был ввести "2 3/01",
Спасибо за любую помощь
Это должно сработать для вас.
regex mixedFraction("(-?[0-9]*)\\s([0-9]*)/([1-9][0-9]*)")
я ничего не знаю о c++ или его реализации в регулярном выражении, поэтому синтаксис может немного отличаться:
\d+\s\d+/[^0]
это будет соответствовать смешанным фракциям, где знаменатель не равен нулю
я не использую эти глупые :digit:
thingyamabobs, поэтому \d
будет достаточно