java 里的正则表达式

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 表示就算内容中包含回车换行符也能正常匹配。

原文地址:https://www.cnblogs.com/qkhh/p/15706116.html