请问怎么用java正则表达式提取以下文本中指定的内容
截至2017年日3月7日,记者从前线传来消息,此次地震震级为4.7级,震源深度8千米。国道213线K774+600m处发生塌方,预计倒塌房屋200余间,地震造成6人当场死...
截至2017年日3月7日,记者从前线传来消息,此次地震震级为4.7级,震源深度8千米。国道213线K774+600m处发生塌方,预计倒塌房屋200余间,地震造成6人当场死亡,23人重伤,另有7辆车被砸毁。
请问怎么从以上文本中提取 地震震级,震源深度,倒塌房屋数量,死亡人数相对应的数据呀
可以用正则表达式实现么 展开
请问怎么从以上文本中提取 地震震级,震源深度,倒塌房屋数量,死亡人数相对应的数据呀
可以用正则表达式实现么 展开
1个回答
展开全部
正则表达式是根据规则来匹配文本,你这里只给了一个文本示例,所以无法建立其比较普遍通用的规则。
以下是示例代码,可供参考。代码中对每一个你要的数据进行了一个单独匹配,也可以通过一次匹配取出全部的数据。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
Pattern zj = Pattern.compile("地震震级为(.*?级)");
Pattern sd = Pattern.compile("震源深度(.*?米)");
Pattern fw = Pattern.compile("倒塌房屋(.*?间)");
Pattern sw = Pattern.compile("(\\d+人).*?死亡");
String content = "截至2017年日3月7日,记者从前线传来消息,此次地震震级为4.7级,震源深度8千米。国道213线K774+600m处发生塌方,预计倒塌房屋200余间,地震造成6人当场死亡,23人重伤,另有7辆车被砸毁。";
Matcher matcher = zj.matcher(content);
if (matcher.find()) {
String result = matcher.group(1);
System.out.println("地震震级:" + result);
}
matcher = sd.matcher(content);
if (matcher.find()) {
String result = matcher.group(1);
System.out.println("震源深度:" + result);
}
matcher = fw.matcher(content);
if (matcher.find()) {
String result = matcher.group(1);
System.out.println("倒塌房屋:" + result);
}
matcher = sw.matcher(content);
if (matcher.find()) {
String result = matcher.group(1);
System.out.println("死亡人数:" + result);
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询