6

我想检查我从文本字段中获取的字符串是否有逗号,以便删除它并用点请求一个新值。

我尝试使用

  textTestAr.trim().matches("^[,]+$")     

但什么也没发生,而这

        ^[1-9,]+$      

做的伎俩,但也匹配像1这样的数字。

4

9 回答 9

10

你不需要在这个问题上强制使用正则表达式。一个简单的textTestAr.indexOf(',')就可以了。

于 2012-12-11T13:30:29.257 回答
4

为什么不在这里使用String#contains而不是正则表达式。

于 2012-12-11T13:31:07.663 回答
4

插入符号^匹配文本的开头。[,]+匹配任意数量的逗号。您需要的是忽略您要查找的项目之前和之后的所有内容:

^.*[,].*$

点匹配除换行符以外的任何字符。*是重复(0 - 任何数字)。匹配文本的$结尾。

请注意,此处不需要修剪字符串。

于 2012-12-11T13:32:03.840 回答
4

做就是了 if(textTestAr.contains(",")) System.out.println("It does!");

于 2012-12-11T13:32:15.697 回答
3

做就是了textTestAr.contains(",")

于 2012-12-11T13:31:15.620 回答
2

第一个断言整个字符串仅由逗号组成。第二个断言字符串由数字(除了0)和逗号组成,但不需要其中的一个。你可以使用这个:

.*,.*

^...$请注意,使用时不需要matches(因为它们是隐式的)。indexOf但无论如何,像 Marko's 或 yentup's 这样的简单解决方案会更好。

于 2012-12-11T13:30:46.637 回答
1

我会直接用正则表达式回答这个问题,

/,/

将一个或一组字母、符号或数字放入其中//,它会尝试专门匹配它。

于 2022-01-10T19:18:09.263 回答
0

不需要正则表达式:

textTestAr.trim().replace(',','.');
于 2012-12-11T13:31:44.220 回答
0
    public  boolean hasComma(String string) {
    if ( string.indexOf(",") > -1) {
        return true;
    }
    return false;
}
于 2012-12-11T13:34:00.267 回答