我需要一个正则表达式,以相同的方式处理带点和逗号的数字。逗号不应被视为千分隔符。
例:
9.8
9,8
应该返回9.8
我尝试了这个,但它不起作用。
^(\d+(?:[\.\,]\d{2})?|)$
答案 0 :(得分:1)
你的正则表达式^(\d+(?:[\.\,]\d{2})?|)$
匹配正好有2位小数的数字,如果你想匹配任何数字(1或更多)小数,请使用:
^(?:\d+(?:[.,]\d+)?|)$
答案 1 :(得分:0)
答案 2 :(得分:0)
<强> PHP 强>
$re = '/(,)/mx';
$str = '9.8 \n9,8';
$subst = '.';
preg_replace($re, $subst, $str);
<强> JAVASCRIPT 强>
var re = /(,)/gmx;
var str = '9.8 \n9,8';
var subst = '.';
str.replace(re, subst);
<强> PYTHON 强>
import re
p = re.compile(r'(,)', re.MULTILINE | re.VERBOSE)
str = "9.8 \n9,8"
subst = "."
re.sub(p, subst, str)