如何使用REGEX解析给定字符串中的特定字符串

时间:2015-12-17 07:50:58

标签: java regex parsing

Mobile Internet 50MB Balance 30.1MB till Jan 12,2016 11:59:59 PM.

我有这个互联网余额扣除的回应,我想代表MB解析这个字符串。我使用了这个正则表达式; \\MB?但它一次包含“M”和“MB”。我也用过这个链接 enter link description here  但是无法得到。不知道我被困在哪里。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:3)

在这里你需要使用积极的前瞻。

Pattern p = Pattern.compile("\\d+(?:\\.\\d+)?(?=MB?)");

如果您不想让B成为可选项,请尝试使用

Pattern p = Pattern.compile("\\d+(?:\\.\\d+)?(?=MB)");

点击下面的链接查看正在运行的演示。

  • \\d+(?:\\.\\d+)?将匹配所有数字(整数以及浮点数,因为我将小数部分视为可选

  • (?=MB)断言匹配必须跟MB。因此,这将匹配MB之前存在的所有数字。

for the client handler part (which is similar to the server handler part) on how to use channel writability