2014-04-29 36 views
0

我需要一個正則表達式,它以相同的方式使用點和逗號對待數字。逗號不應被視爲千位分隔符。帶點和逗號的正則表達式數

例子:
9.8
9,8

應該返回9.8兩

我嘗試這樣做,但它不工作。

^(\d+(?:[\.\,]\d{2})?|)$ 
+0

在問你這個問題之前你有什麼嘗試嗎? – csmckelvey

+1

所以'2,223,3''等於'2.22.333' – aelor

+0

是的我試過這個: – user3583805

回答

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) 
1

你的正則表達式^(\d+(?:[\.\,]\d{2})?|)$匹配的數字,如果你想匹配小數的任何數量(1或更多)具有完全相同2位小數,使用:

^(?:\d+(?:[.,]\d+)?|)$