gpt4 book ai didi

java - RegExp GWT/Javascript的测试方法

转载 作者:行者123 更新时间:2023-12-02 08:17:56 27 4
gpt4 key购买 nike

我想使用正则表达式检测String是否为小数。我的问题更多的是如何使用正则表达式机制,而不是检测 String 是小数。我使用 GWT 提供的 RegExp 类。

        String regexDecimal = "\\d+(?:\\.\\d+)?";
RegExp regex = RegExp.compile(regexDecimal);
String[] decimals = { "one", "+2", "-2", ".4", "-.4", ".5", "2.5" };
for (int i = 0; i < decimals.length; i++) {
System.out.println(decimals[i] + " "
+ decimals[i].matches(regexDecimal) + " "
+ regex.test(decimals[i]) + " "
+ regex.exec(decimals[i]));
}

输出:

one false false null
+2 false true 2
-2 false true 2
.4 false true 4
-.4 false true 4
.5 false true 5
2.5 true true 2.5

我期望 String.matches()RegExp.test() 方法返回相同的结果。

  1. 那么有什么区别两种方法都可以吗?
  2. 如何使用 RegExp.test() 获得相同的行为?

最佳答案

尝试将正则表达式更改为

"^\\d+(?:\\.\\d+)?$"

解释一下
双重转义是因为我们在Java中......
正则表达式以 ^ 开头,强制正则表达式从字符串的开头进行匹配。
regex end with $ 强制正则表达式从字符串的最末尾开始匹配。

这就是如何让 String.matches() 执行与 GWT RegExp.test() 相同的操作

关于java - RegExp GWT/Javascript的测试方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5986949/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com