Android EditText排除了一些前导字符

Android EditText排除了一些前导字符,android,regex,Android,Regex,在扩展EditText的类中,我有以下变量: private final String LEADING_ZERO_FILTER_REGEX = "^0+(?!$)"; 这将使某些输入(前导字符)自动删除,但它只能处理零(0)和符号。有时我会将0.0作为一个输出(即使是这个可编辑的,也可以添加0.012313545或以0.0开头的东西),这让我的应用程序很难看如何在正则表达式中添加0.0?我想排除0.0,这意味着在编辑文本中输入不能以0.0开头。仅供参考,我在正则表达式方面的知识是0.1,从1

在扩展EditText的类中,我有以下变量:

 private final String LEADING_ZERO_FILTER_REGEX = "^0+(?!$)";
这将使某些输入(前导字符)自动删除,但它只能处理零(0)和符号。有时我会将0.0作为一个输出(即使是这个可编辑的,也可以添加0.012313545或以0.0开头的东西),这让我的应用程序很难看如何在正则表达式中添加0.0?我想排除0.0,这意味着在编辑文本中输入不能以0.0开头。仅供参考,我在正则表达式方面的知识是0.1,从1级到10级

*注意:当用户输入0/任何可能使结果为0.0(零点0)的值时,我的应用程序会计算一些值

更新信息: 在应用程序中有3个编辑文本,第一个是价格,第二个是百分比,第三个是两者的结果。我有自定义的edittext,它会将输入更改为货币格式(当用户键入时),这个自定义的edittext有onChange和onCleared。在onchange上,我将计算过程放在第一位,它将值转换回数字格式(自定义edittext中也有反向函数),然后进行计算,不过我使用的是Double.valueOf(来自edittext的输入)。使输出也是双格式的(它将首先转换为字符串,然后放入结果文本)。我认为罪魁祸首是双重格式,它使结果为0.0(实际上应该是空的(“”),我不知道为什么它会变成0.0(错误尚未找到))

**更多说明:
edittext互相监视,假设用户在第1和第2个edittext中输入,则输出将是第3个edittext。但是如果用户输入到第1个和第3个,那么输出将在第2个(百分比)

要删除前导的
0
0.0
,只需使用下面的正则表达式即可

 private final String LEADING_ZERO_FILTER_REGEX = "^(?:0\\.0|0+)";

使用示例输入和输出以及您在使regexi工作中所做的努力将其正确格式化。我认为您的意思是
^(?:0(?:0)?++
@Avinash Raj,当我将其设置为“^(?:0(?:0)?)+(?!$)”时,它给出了一个错误无效的转义序列(有效的是\b\t\n\f\r\'\\\\\\\\\\\\)哦,对不起,请执行双重转义。
^(?:0(?:0(?:0?)++
^(?:0+\\\\\\\\\\\\\)
我不知道你为什么添加
(?!$)
@all是否有任何推荐的文章或东西可以增加我对正则表达式的了解?是否应该有$来结束正则表达式?@JediFighter发布一个示例输入和预期输出。示例输入必须涵盖所有可能性。基于上述更新,我有3个edittext。如果我在第1个edittext上输入1000,在第2个edittext上输入0e输出应该是0。但是输出是0.0,现在变成了。0。我这样做是为了防止用户从第二个edittext中删除值,并且可能想要更改它,用户会发现这个错误。我认为问题来自计算算法,但是你知道如何解决这个问题吗?0.0,.0问题。自定义edittext使这个前导\u ZERO\u过滤器ER_REGEX可替换除排除值以外的任何给定输入