0

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

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

这是我目前正在使用的正则表达式:

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

我尝试了各种变化,但似乎无法找出可行的方法。本质上,我真的只需要它来检查只有分母的第一个数字不是 0——如果有人输入 '2 3/01' 验证失败就可以了

感谢您的任何帮助

4

2 回答 2

1

这应该适合你。

regex mixedFraction("(-?[0-9]*)\\s([0-9]*)/([1-9][0-9]*)")
于 2013-10-12T02:30:24.720 回答
0

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

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

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

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

于 2013-10-12T02:18:59.993 回答