我有一段代码正在抓取格式错误的价格。我只想使用正则表达式来清理它。
他们正在发送
$ 3 58
我想删除$和空格,并用替换美元和美分之间的空格。所以我得到:
3.58
我可以摆脱$和前导空格,但我真的被替代所困。 我知道
Regex (.*) returns everything
Regex \ (.*) returns '3 58'
但是我真正想要的是
3.58
我正在尝试在一个称为内容抓取程序的程序中执行此操作,因此我只能访问正则表达式。
答案 0 :(得分:0)
您可以使用2个捕获括号。
\ D *(\ d +)\ D *(\ d +)
\ 1. \ 2
答案 1 :(得分:0)
您似乎所需要的只是capture两个用空格分隔的数字块,并使用将带点将组连接起来的命令:
dragParts.add(DragBox(
key: GlobalKey(),
startPosition: Offset(0.0, 0.0),
color: Colors.red,
label: "Box1",
bringToTop: this.bringToTop,
));
dragParts.add(DragBox(
key: GlobalKey(),
startPosition: Offset(50.0, 50.0),
color: Colors.red,
label: "Box2",
bringToTop: this.bringToTop,
));
dragParts.add(DragBox(
key: GlobalKey(),
startPosition: Offset(100.0, 100.0),
color: Colors.blue,
label: "Box3",
bringToTop: this.bringToTop,
));
由于(\d+) (\d+)
return $1.$2
命令仅返回匹配的内容,因此无需在输入中匹配其他任何内容。
return
模式将一个或多个数字匹配并捕获到组1((\d+) (\d+)
)中,然后匹配一个空格($1
可用于匹配1+个空白字符),并且然后\s+
模式再次匹配并捕获到第2组((\d+)
)一个或多个数字。
答案 2 :(得分:0)
console.log(' $ 1 20'.replace(/[^0-9\ .]/g, '').trim().replace(/\ /g, '.'))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 3 :(得分:0)
在$ 3 58
中,您可以匹配要在替换中删除的内容,并捕获要保留的内容。
匹配一个美元符号\$
,然后匹配一个或多个空格字符\s+
,并捕获一个或多个数字(\d+)
在替换使用组1中。组2。例如$1.$2