2012-10-24 64 views
0

我想,這相匹配的正則表達式:一句話,「數字」,字引號內的數 - 正則表達式

其中數字是這樣的:100,000.00

到目前爲止,我有這個,但我不知道如何檢查數字周圍的引號。

(w+)(,)\\(d+)(,)(d+)(.)(d+)(,)\\(w+)(,) 
+1

在正則表達式中添加引號? –

+0

數字是否與'100,000.00'完全相同,或者可以是例如:'1'' 10.0'' 0.12345'' 1,000,000.12'? – Pshemo

回答

1

只是轉義字符加引號是這樣的:

\\ w + \\ 「\\ d + \\ d + \\ d + \\」,\\ W +

我刪除了最後的昏迷......因爲不是模式的一部分。

+0

謝謝,我是新來的正則表達式,並不知道我不得不逃脫報價。 – user1155344

+0

@ user1155344不客氣。 – Mik378

+0

@ user1155344在正則表達式中引用不是[特殊字符](http://www.regular-expressions.info/characters.html#SpecialCharacter),所以你不必因此而逃避它。但是它們是Java中的特殊字符,所以爲了能夠在String中將它用作普通字符,您需要用'\「'而不是'\\''來轉義它的特殊含義。除此之外,這個答案可以解決你的單詞「100,000.00」,word問題:) – Pshemo

0

如果您的號碼可以後有樹位數少(或無)分號或精密部件可以選配你可以使用這個表達式:

String regex= 
     "\\w+,\"" +  // word, semicolon, quote mark 
     "\\d{1,3}" + // number in form d, dd, or ddd 
     "(,\\d{3})*" + // optional (* means 0 or more times) part of numbers in format ",ddd" 
     "(\\.\\d{2})?" +// optional (? means 0 or 1 time) part ".dd" 
     "\",\\w+";  // quote mark, semicolon, word 

這將接受:

-precision part is optional 
d 
d.dd 

-number of semicolons can change, but every semicolon MUST have 3 digits after it 
dd,ddd 
d,ddd,ddd 
d,ddd,ddd.dd