java 裏的正則表達式和 c# 中的不一樣。尤其是從中提取部分字符串的時候。比如說,給定一個字符串,
REF ( RMB 393.00000,OTHERS
要從中提取出數值,c# 只需要給數值匹配的正則表達式就可。一個參考:
[0-9]+(\.[0-9]+)?
然後取匹配到的內容即可。
對於 java, 需要設計一個匹配整個內容的正則表達式,然後從中取出數值的分組。參考如下:
[^0-9]*([0-9]+(\.[0-9]+)?).*
然後從中取出第 1 個 group。
String input = "REF ( RMB 393.00000,OTHERS";
Matcher matcher = pattern.matcher(input, Pattern.DOTALL);
if(matcher.matches()){ String num = matcher.group(1); }
創建 matcher 那一句,在最後加入 Pattern.DOTALL 表示就算內容中包含回車換行符也能正常匹配。