Kotlin Regex for GPA不匹配

时间:2018-12-18 18:11:22

标签: java regex kotlin pattern-matching

所以我做了一个正则表达式来测试有效的GPA,例如0.00到5.00,包括0、4、3.55等,无效的东西包括6.0、3.555、0.000、11.11等。在多个网站上,验证了此Regex适用于这些情况。

(([0-5]\s)|([0-4]\.\d{0,2}\s))|[5]\.[0]{0,2}\s

然后我尝试使用Java Regex类在Kotlin中使用它,但没有得到预期的结果,对于我的测试用例总是错误的。

带有“ 2.0”测试字符串的代码:

Regex("(([0-5]\\s)|([0-4]\\.\\d{0,2}\\s))|[5]\\.[0]{0,2}\\s").matches("2.0")

我很好奇我所缺少的是导致失败的原因。我已经转义了/个字符,并尝试使用不带转义的字符串文字进行变体操作,并且也直接使用Pattern / Matcher无效。

1 个答案:

答案 0 :(得分:0)

@Pushpesh Kumar Rajwanshi发表的

^(?:5(?:\.0{1,2})?|[0-4](?:\.\d{1,2})?)$解决了我的问题。感谢您的及时答复,并发现了缺少的4.个案例。