我需要一点帮助。这是我第一次使用正则表达式。
因此,我想确保用户只能输入数字和另外两个字符-句点.
和逗号,
。
每当用户输入带有这样的字母的数字100A1
时,它就会输出“ Wrong Output”,这是很好的,这正是我想要的。但是,如果用户输入12.10
或10,000
或10,000.50
,则程序还将输出“错误输出”。
我没有正确使用Pattern.matches()语法。如果您能帮助我,我将不胜感激。谢谢。
if (!Pattern.matches("[0-9]+", stringUserInput)) {
System.out.println("Wrong input");
}
答案 0 :(得分:0)
此正则表达式应该起作用:
\b[0-9,.]+\b
位置:
\b
-单词边界
[...]+
-匹配方括号中的任何字符1次或更多次
0-9
-数字0到9
,
-逗号
.
-期间
当我开始学习正则表达式时,我使用https://regexr.com/进行实验。它有一个有用的功能,可以解释您的正则表达式表达式在做什么。
希望这会有所帮助!
编辑:如果您使用Java编写,则可能需要转义反斜杠字符。因此,最终结果应为:\\b[0-9,.]+\\b
。