Mobile Internet 50MB Balance 30.1MB till Jan 12,2016 11:59:59 PM.
我有这个互联网余额扣除的回应,我想代表MB解析这个字符串。我使用了这个正则表达式;
\\MB?
但它一次包含“M”和“MB”。我也用过这个链接
enter link description here
但是无法得到。不知道我被困在哪里。任何建议将不胜感激。
答案 0 :(得分:3)
在这里你需要使用积极的前瞻。
Pattern p = Pattern.compile("\\d+(?:\\.\\d+)?(?=MB?)");
如果您不想让B成为可选项,请尝试使用
Pattern p = Pattern.compile("\\d+(?:\\.\\d+)?(?=MB)");
点击下面的链接查看正在运行的演示。
\\d+(?:\\.\\d+)?
将匹配所有数字(整数以及浮点数,因为我将小数部分视为可选)
(?=MB)
断言匹配必须跟MB
。因此,这将匹配MB
之前存在的所有数字。