我是RegEx的新手,在Visual Studio(C ++)中工作,需要检查输入是否是有效的混合分数。
到目前为止我的所有情况都适用,除了我想确保分母不能为0(例如2 3/0)。
这是我目前正在使用的RegEx:
regex mixedFraction("(-?[[:digit:]]+)[\\s]([[:digit:]]+)[/]([[:digit:]]+)")
我尝试过变化,但似乎无法找出有效的东西。从本质上讲,我真的需要它来检查只有分母的第一个数字不是0 - 如果有人要进入'2 3/01'那么它将无法通过验证
感谢您提供的任何帮助
答案 0 :(得分:1)
这应该适合你。
regex mixedFraction("(-?[0-9]*)\\s([0-9]*)/([1-9][0-9]*)")
答案 1 :(得分:0)
我对c ++或其正则表达式实现一无所知,因此语法可能略有不同:
\d+\s\d+/[^0]
这将匹配分母不等于零的混合分数
我不使用那些愚蠢的:digit:
thingyamabobs,所以\d
就足够了