什么是正则表达式

正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
Java利用正则表达式提取数据
Java正则表达式的用途很广,之前要用到将一大 3M 的 txt 文本切分成多个小文本,用 C# 写的话很简洁,代码也就二十几行,今天用 Java 写了一下,果然,Java 很罗嗦。
切分文件的代码就不贴了,主要贴一下怎么使用正则表达式将大字符串进行分组:
比如,现在有一个 endlist.txt 文本文件,内容如下:
1300102,北京市 1300103,北京市 1300104,北京市 1300105,北京市 1300106,北京市 1300107,北京市 1300108,北京市 1300109,北京市 1300110,北京市 1300111,北京市 1300112,北京市 1300113,北京市 1300114,北京市 1300115,北京市 1300116,北京市 1300117,北京市 1300118,北京市 1300119,北京市
七位数字代表手机号码的前七位,后面的汉字表示号码归属地。现在我要将这些内容按照 130 131 132... 开头分别写到 130.txt 131.txt 132.txt.....这些文件中。
public static void main(String args[]) {
File file = null;
BufferedReader br = null;
StringBuffer buffer = null;
String childPath = "src/endlist.txt";
String data = "";
try {
file = new File(childPath);
buffer = new StringBuffer();
InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "utf-8");
br = new BufferedReader(isr);
int s;
while ((s = br.read()) != -1) {
buffer.append((char) s);
}
data = buffer.toString();
} catch (Exception e) {
e.printStackTrace();
}
Map<String, ArrayList<String>> resultMap = new HashMap<String, ArrayList<String>>();
for (int i = 0; i < 10; i++) {
resultMap.put("13" + i, new ArrayList<String>());
}
Pattern pattern = Pattern.compile("(\\d{3})(\\d{4},[\u4e00-\u9fa5]*\\n)");
Matcher matcher = pattern.matcher(data);
while (matcher.find()) {
resultMap.get(matcher.group(1)).add(matcher.group(2));
}
for (int i = 0; i < 10; i++) {
if (resultMap.get("13" + i).size() > 0) {
try {
File outFile = new File("src/13" + i + ".txt");
FileOutputStream outputStream = new FileOutputStream(outFile);
OutputStreamWriter writer = new OutputStreamWriter(outputStream, "utf-8");
ArrayList<String> tempList = resultMap.get("13" + i);
for (int j = 0; j < tempList.size(); j++) {
writer.append(resultMap.get("13" + i).get(j));
}
writer.close();
outputStream.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
第24行使用正则表达式 "(\\d{3})(\\d{4},[\u4e00-\u9fa5]*\\n)" 每个()中的内容为一组,索引从 1 开始,0表示整个表达式。所以这个表达式分为两组,第一组表示3个数字,第二组表示 4个数字加多个汉字加一个换行符。提取时如26-28行所示。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
# java正则表达式
# 提取
# java正则表达式实例
# java正则表达式的使用
# Java正则表达式提取字符的方法实例
# java 字符串截取的三种方法(推荐)
# Java实现字符串匹配(基于正则)
# Java利用正则取标签之间的数据
# 北京市
# 正则表达式
# 切分
# 多个
# 七位
# 是一种
# 也就
# 就不
# 是由
# 二十
# 一大
# 要用
# 写了
# 作为一个
# 写到
# 所示
# 要将
# 这篇文章
# 罗嗦
# 两组
相关文章:
如何基于云服务器快速搭建个人网站?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
一键网站制作软件,义乌购一件代发流程?
css网站制作参考文献有哪些,易聊怎么注册?
网站好制作吗知乎,网站开发好学吗?有什么技巧?
5种Android数据存储方式汇总
建站之星免费模板:自助建站系统与智能响应式一键生成
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?
建站之星安装提示数据库无法连接如何解决?
代刷网站制作软件,别人代刷火车票靠谱吗?
专业网站建设制作报价,网页设计制作要考什么证?
开封网站制作公司,网络用语开封是什么意思?
音乐网站服务器如何优化API响应速度?
如何确认建站备案号应放置的具体位置?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
建站之星安装后如何配置SEO及设计样式?
b2c电商网站制作流程,b2c水平综合的电商平台?
高防服务器租用首荐平台,企业级优惠套餐快速部署
如何通过网站建站时间优化SEO与用户体验?
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
C++如何使用std::optional?(处理可选值)
如何使用Golang table-driven基准测试_多组数据测量函数效率
如何用PHP快速搭建CMS系统?
临沂网站制作公司有哪些,临沂第四中学官网?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
Swift中swift中的switch 语句
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
网站制作的步骤包括,正确网址格式怎么写?
建站之星各版本价格是多少?
重庆市网站制作公司,重庆招聘网站哪个好?
如何在云主机上快速搭建多站点网站?
建站10G流量真的够用吗?如何应对访问高峰?
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
如何在IIS管理器中快速创建并配置网站?
如何用AWS免费套餐快速搭建高效网站?
兔展官网 在线制作,怎样制作微信请帖?
如何在IIS7上新建站点并设置安全权限?
深入理解Android中的xmlns:tools属性
历史网站制作软件,华为如何找回被删除的网站?
成都响应式网站开发,dw怎么把手机适应页面变成网页?
深圳网站制作平台,深圳市做网站好的公司有哪些?
小型网站制作HTML,*游戏网站怎么搭建?
如何在局域网内绑定自建网站域名?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
制作农业网站的软件,比较好的农业网站推荐一下?
如何在云服务器上快速搭建个人网站?
建站之星安装路径如何正确选择及配置?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
*请认真填写需求信息,我们会在24小时内与您取得联系。