博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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

 

posted on 2021-12-18 21:39  黑米  阅读(32)  评论(0编辑  收藏  举报