有时候我们想从一段文字中提取想要的内容,如省市区地址中提取出省市,从股票的数据中提取出关键的价格信息,抓取HTML文件后提取内容等等这些场景,这时我们可以使用JAVA正则表达式帮助我们提取出想要的数据。
我们试着从地址中提取省市信息,示例文本如:福建省厦门市杏林区,我们在IDE中键入如下代码进行提取:
String address = "福建省厦门市杏林区";
Pattern ptn = Pattern.compile("([\\u4e00-\\u9fa5]+省)?([\\u4e00-\\u9fa5]+市)(.*)");
Matcher matcher = ptn.matcher(address);
if (matcher.matches()) {
String province = matcher.group(1);
String city = matcher.group(2);
System.out.println("省:" + province);
System.out.println("市:" + city);
}
执行代码后控制台输出如下结果:
省:福建省
市:厦门市
这里需要注意的是中文的正则范围为&