我需要完成一些计算器,目前我正处理的问题是我只需要数字(0,1,2,3,4,5,6,7,8,9)和运算符( +, - ,*,/ ,.)在我的JTextField中,这是用户的输入。
目前我的正则表达式如下:
String REGEX = "^[0-9]+[.]?[0-9]{0,1}$";
这是我在网上找到的一个例子。
我如何才有可能允许这些运营商:+
,-
,*
,/
? (点已经完成)
总的想法是让它像Windows计算器一样。
我在这个话题上并不那么强,请提出建议。
编辑:它还需要像(
和)
答案 0 :(得分:4)
以下是符合您要求的示例:
^[\d\+\/\*\.\- \(\)]*$
作为JAVA字符串,这将是:
String regex = "^[\\d\\+\\/\\*\\.\\- \\(\\)]*$";
请注意,我还在此允许的字符列表中添加了一个SPACE。
答案 1 :(得分:2)
以防有人需要更合适的解决方案:
^(\d+[\+\-\*\/]{1})+\d+$
这是更好的,因为这些字符串不会通过:
45++6*6
12+4+
+2-6
您可以在此处进行测试:https://regex101.com/r/zB7vV3/2
答案 2 :(得分:0)
我的正则表达式
^[\d\(]+[\d\+\-\*\/\(\)]+[\d\)]+$
通过:
还不好: