问题陈述:我想在后台读取USSD代码并想获取一些值:
例如
- 剩余数据余额为 400 MB,有效期为 2017 年 4 月 20 日。(需要提取"400 MB"(
- 剩余数据余额为 0.04 GB,有效期为 2017 年 4 月 20 日。(我需要提取 0.04 GB(
等等...
我该怎么做?任何人都可以帮忙。我怎样才能进行这些类型的拆分
我不确定您的爬虫是否正在获取相同的信息 msga,但可以肯定的是,您可以使用正则表达式来匹配您需要的信息......
String str = "Your data balance left is 400 MB, validity is 20 APR 2017. (need to extract '400 MB')n"
+ "Your data balance left is 0.04 GB, validity is 20 APR 2017. (I need to extract 0.04 GB)";
Matcher myMatcher = Pattern.compile(Pattern.quote("left is") + "(.*?)" + Pattern.quote(", validity is"))
.matcher(str);
while (myMatcher.find()) {
String result = myMatcher.group(1).trim();
String[] spltter = result.split(" ");
System.out.println("result: " + result);
System.out.println("value: " + spltter[0]);
System.out.println("result: " + spltter[1]);
}
这是一个提取您正在寻找的内容的解决方案,它不需要任何模式匹配器类
private String ussdString = "Your data balance left is 400 MB, validity is 20 APR 2017";
String[] stringArray = ussdString.split(",");
String ussdStringData = stringArray[0];
ussdStringData = ussdStringData.replace("Your data balance left is ", "");
System.out.println("Data is " + ussdStringData);
简单的解决方案