Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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
Dart Regexp替换除数字以外的所有数据,并允许一次。或_Regex_Flutter_Dart_Currency - Fatal编程技术网

Dart Regexp替换除数字以外的所有数据,并允许一次。或

Dart Regexp替换除数字以外的所有数据,并允许一次。或,regex,flutter,dart,currency,Regex,Flutter,Dart,Currency,我需要替换不是数字的所有内容,只允许第一个、或 final string = _lengthController.text?.replaceAll(RegExp('[^0-9,.]'), '') 到目前为止,这是我得到的,它工作正常,但允许,多次 因此,如何在第一个、和之后替换每个,,不允许每个都替换一个,但总共只能替换一个。您可以使用 text.replaceAllMapped(RegExp(r'^([^,.]*[,]))\D+,(Match m)=> m[1]!=null?m[1]。rep

我需要替换不是数字的所有内容,只允许第一个

final string = _lengthController.text?.replaceAll(RegExp('[^0-9,.]'), '')
到目前为止,这是我得到的,它工作正常,但允许
多次

因此,如何在第一个
之后替换每个
,不允许每个都替换一个,但总共只能替换一个。

您可以使用

text.replaceAllMapped(RegExp(r'^([^,.]*[,]))\D+,(Match m)=>
m[1]!=null?m[1]。replaceAll(RegExp(r'[^0-9,.]+'),'':'')
^([^.,]*[,])\D+
正则表达式匹配

  • ^([^,.]*[,])
    -字符串的开头,然后是除
    以外的任何字符,然后将
    捕获到组1中
  • |
    -或
  • \D+
    -任何一个或多个非数字字符
如果第一个选项匹配,则应保留
,因此
.replaceAll(RegExp(r'[^0-9,.]+'),'')
用于删除除数字以外的所有字符,


如果
\D+
匹配,则表示第一个
已匹配,因此此替代项为空字符串。

我理解
r'(?不,这不适用于快速回答,它适用于
但根本不适用于
@StevenDz你能提供一个例子吗?
32,43
不会formatted@StevenDz你期望什么呢?
32,43
是正确的(因为你要求“在第一个
之后替换每个
,每个都不允许,但总共只能替换一个”)转换为
32,43
321,32
必须保持不变。很抱歉,它工作正常,因为它不是
的双精度,所以引发了另一个expeption,因此ui没有更新。因此我需要将
替换为
,谢谢