Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android中InputFilter for EditText的正则表达式帮助_Android_Regex - Fatal编程技术网

Android中InputFilter for EditText的正则表达式帮助

Android中InputFilter for EditText的正则表达式帮助,android,regex,Android,Regex,我需要实现一个输入过滤器,用于限制格式为1234.35的数字输入。也就是说,在之前最多四位,小数点后两位。我使用这种模式: 这是可行的,但一旦我在编辑文本中输入一个数字并尝试编辑小数点前的值,我就无法编辑它们。我只能删除它们 怎么了?根据您所说的,我认为您似乎在尝试这样做,我将使用以下正则表达式: ^(\d{0,4})(\.\d{1,2})?$ 它匹配“0-4位”,后面有或没有“一个小数点和两个数字”。如果有小数点,则后面必须有一位或两位数字。例如:5、1234、1234.56、.2和.31都

我需要实现一个输入过滤器,用于限制格式为
1234.35
的数字输入。也就是说,在
之前最多四位,小数点后两位。我使用这种模式:

这是可行的,但一旦我在编辑文本中输入一个数字并尝试编辑小数点前的值,我就无法编辑它们。我只能删除它们


怎么了?

根据您所说的,我认为您似乎在尝试这样做,我将使用以下正则表达式:

^(\d{0,4})(\.\d{1,2})?$
它匹配“0-4位”,后面有或没有“一个小数点和两个数字”。如果有小数点,则后面必须有一位或两位数字。例如:
5
1234
1234.56
.2
.31
都是有效的,并且由表达式匹配,但是
.123
1234.
1234.567
12345
不匹配

或者,要允许以小数结尾的数字(如
1234.
等),请使用以下修改:

^(\d{0,4})(\.(\d{1,2})?)?$
^(\d{0,4})(\.(\d{1,2})?)?$