混合分数的正则表达式验证 - Visual C ++ 2012

时间:2013-10-12 01:43:37

标签: c++ regex visual-studio-2012 fractions

我是RegEx的新手,在Visual Studio(C ++)中工作,需要检查输入是否是有效的混合分数。

到目前为止我的所有情况都适用,除了我想确保分母不能为0(例如2 3/0)。

这是我目前正在使用的RegEx:

regex mixedFraction("(-?[[:digit:]]+)[\\s]([[:digit:]]+)[/]([[:digit:]]+)")

我尝试过变化,但似乎无法找出有效的东西。从本质上讲,我真的需要它来检查只有分母的第一个数字不是0 - 如果有人要进入'2 3/01'那么它将无法通过验证

感谢您提供的任何帮助

2 个答案:

答案 0 :(得分:1)

这应该适合你。

regex mixedFraction("(-?[0-9]*)\\s([0-9]*)/([1-9][0-9]*)")

答案 1 :(得分:0)

我对c ++或其正则表达式实现一无所知,因此语法可能略有不同:

\d+\s\d+/[^0]

这将匹配分母不等于零的混合分数

我不使用那些愚蠢的:digit: thingyamabobs,所以\d就足够了