我發現這個正則表達式可以找到1.00或1.00美元的價格。但對於長度爲3位或更長的值(如'365'),它也會返回true。字符串中的正則表達式價格
/([\d,]+.\d+)+/i
反正是有修改此正則表達式來進行的所有類型的浮點,但不包括連續3個數字,如「365」或「1000」的價格,等:
1.00 $ 1.00的返回true
我發現這個正則表達式可以找到1.00或1.00美元的價格。但對於長度爲3位或更長的值(如'365'),它也會返回true。字符串中的正則表達式價格
/([\d,]+.\d+)+/i
反正是有修改此正則表達式來進行的所有類型的浮點,但不包括連續3個數字,如「365」或「1000」的價格,等:
1.00 $ 1.00的返回true
這應找到所有的單位數字,帶小數點。所以說: ''
1.xxx
2.xxx
...
9.xxx
但不
365
或365.000
/(\d\.\d+)/i
@ miky-dinescu那個正則表達式仍然返回像'365'這樣的值。 – oprogfrogo 2011-03-28 22:26:50
@ user450837 - 我現在修好了..以前我有兩個錯誤。那是你在找什麼? – 2011-03-28 22:28:04
@ miky-dinescu這就是我正在尋找的!謝謝。 – oprogfrogo 2011-03-28 22:41:56
如果我沒有記錯的,相反,你需要使用 '\'。你有什麼可以匹配任何東西,而第二個匹配字符'。'。 。
/([\d,]+\.\d+)/
.
匹配一切,所以,逃吧:
/([\d,]+\.\d+)+/i
我甚至做到這一點:
/\d{1,3}(,?\d{3})*\.\d+)+/i
如果您正在尋找在某一段文字,匹配價格,如:
1.00是有效的價格,所以是1.50美元和10.12美元,但不是$ 200.90或 £1000.10
那麼這將返回1.00
,$1.50
和$10.12
火柴。
(^|\W{1})\d{1,2}\.\d{2}
您可以通過使用{a,b}
\d{1,2}\.\d{2}$
限制正則表達式部分的擴展,我認爲你沒有正確地從哪裏找到它複製的正則表達式。它有太明顯的錯誤。正如下面的答案指出的那樣,應該逃避'.'。另外,如果你只是匹配數字和符號,大小寫不應該重要,所以你的'我'最後是沒用的。你應該檢查你的正則表達式,並首先修正它。 – sawa 2011-03-29 01:45:50