什么是正则表达式,它将匹配仅包含数字0到9,逗号和分号的字符串?我希望像Java一样在Java中使用它:
word.matches("^[1-9,;]$") //Or something like that...
我是正则表达式的新手。
答案 0 :(得分:47)
你几乎拥有它,你只是忽略了量词。
word.matches("^[0-9,;]+$")
答案 1 :(得分:23)
你是90%的人。
^[0-9,;]+$
从克拉^
开始表示行的开头。
[
表示字符集
0-9
表示字符0到9,逗号,
表示逗号,分号表示;
。
结束]
表示字符集的结束。
加号+
表示必须存在一个或多个“前一项”。在这种情况下,它意味着您必须在先前声明的字符集中包含一个或多个字符。
美元$
表示该行的结束。
答案 2 :(得分:4)
尝试word.matches("^[0-9,;]+$");
答案 3 :(得分:2)
word.matches("^[0-9,;]+$");
你几乎就在那里
答案 4 :(得分:1)
您当前的正则表达式只匹配1个字符。你需要*(包括空字符串)或+(至少一个)来匹配多个字符,而数字有一个快捷键:\ d(字符串中需要\\)。
word.matches("^[\\d,;]+$")
Pattern文档非常好:http://download.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html
您也可以在线试用您的正则表达式: http://www.regexplanet.com/simple/index.html
答案 5 :(得分:0)
boolean foundMatch = Pattern.matches("[0-9,;]+", "131;23,87");