我目前正在尝试创建代码来检查内容是否为Numeric。我发现这个整齐的匹配命令可以处理正则表达式代码,但我是一个初学者所以如果你能解释我做错了会很棒。
我正在尝试将E作为指数,并且还可以输入.1
以及0.1
。显然,我不希望它能够输入多个标点符号和一个E。
这是我的代码:
if (blabla.getText().toString().matches("((-|\\+)?([0-9]|[0-9].|.[0-9])+([0-9]+E)?([0-9]+)?)+")) {
目前,此代码允许您输入类似E2的内容,即使对我而言,因为([0-9] | [0-9]。|。[[] [... 0],它看起来不应该返回true。 0-9])+在那之前。
答案 0 :(得分:2)
你必须逃避这段时间:
if (blabla.getText().toString().matches("((-|\\+)?([0-9]|[0-9]\.|\.[0-9])+([0-9]+E)?([0-9]+)?)+");
如果没有转义,则句号表示“除换行符之外的任何字符”。