匹配包含逗号的字符串(例如1,5)

时间:2012-12-11 13:28:33

标签: java regex

我想检查我从Textfield获取的字符串 有一个逗号,为了放弃它并用点来要求一个新的值。

我尝试使用

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

但没有任何反应,而这

        ^[1-9,]+$      

可以解决这个问题,但也会匹配像1这样的数字。

8 个答案:

答案 0 :(得分:10)

您不需要在此问题上强制使用正则表达式。一个简单的textTestAr.indexOf(',')即可。

答案 1 :(得分:4)

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

答案 2 :(得分:4)

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

答案 3 :(得分:3)

只做textTestAr.contains(",")

答案 4 :(得分:3)

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

^.*[,].*$

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

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

答案 5 :(得分:2)

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

.*,.*

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

答案 6 :(得分:0)

不需要正则表达式:

textTestAr.trim().replace(',','.');

答案 7 :(得分:0)

    public  boolean hasComma(String string) {
    if ( string.indexOf(",") > -1) {
        return true;
    }
    return false;
}