获取需要使用到正则的两个对象:

使用的是用正则对象Pattern 和匹配器Matcher。

用法:

范例:

Pattern p = Pattern.compile("a*b");

Matcher m = p.matcher("aaaaab");

boolean b = m.matches();

步骤:

1,先将正则表达式编译成正则对象。使用的是Pattern类一个静态的方法。compile(regex);

2,让正则对象和要操作的字符串相关联,通过matcher方法完成,并返回匹配器对象。

3,通过匹配器对象的方法将正则模式作用到字符串上对字符串进行针对性的功能操作

需求:获取由3个字母组成的单词。

public static void getDemo()

{

String str = "da jia zhu yi le,ming tian bu fang jia,xie xie!";

//想要获取由3个字母组成的单词。

//刚才的功能返回的都是一个结果,只有split返回的是数组,但是它是把规则作为分隔符,不会获取符合规则的内容。

//这时我们要用到一些正则对象。

String reg = "\\b[a-z]{3}\\b";

Pattern p = Pattern.compile(reg);

Matcher m = p.matcher(str);

while(m.find())

{

System.out.println(m.start()+"...."+m.end());

System.out.println("sub:"+str.substring(m.start(),m.end()));

System.out.println(m.group());

}

// System.out.println(m.find());//将规则对字符串进行匹配查找。

// System.out.println(m.find());//将规则对字符串进行匹配查找。

// System.out.println(m.group());//在使用group方法之前,必须要先找,找到了才可以取。

}

校验邮件

public static void checkMail()

{

String mail = "abc123@sina.com.cn";

mail = "1@1.1";

String reg = "[a-zA-Z_0-9]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";

reg = "\\w+@\\w+(\\.\\w+)+";//简化的规则。笼统的匹配。

boolean b = mail.matches(reg);

System.out.println(mail+":"+b);

}

网络爬虫 (获取邮箱)

class GetMailList

{

public static void main(String[] args) throws Exception

{

String reg = "\\w+@[a-zA-Z]+(\\.[a-zA-Z]+)+";

getMailsByWeb(reg);

}

public static void getMailsByWeb(String regex)throws Exception

{

URL url = new URL("http://localhost:8080/myweb/mail.html");

URLConnection conn = url.openConnection();

BufferedReader bufIn = new BufferedReader(new InputStreamReader(conn.getInputStream()));

String line = null;

Pattern p = Pattern.compile(regex);

while((line=bufIn.readLine())!=null)

{

//System.out.println(line);

Matcher m = p.matcher(line);

while(m.find())

{

System.out.println(m.group());

}

}

bufIn.close();

}

public static void getMails(String regex)throws Exception

{

BufferedReader bufr =

new BufferedReader(new FileReader("mail.txt"));

String line = null;

Pattern p = Pattern.compile(regex);

while((line=bufr.readLine())!=null)

{

//System.out.println(line);

Matcher m = p.matcher(line);

while(m.find())

{

System.out.println(m.group());

}

}

bufr.close();

}

}

单词边界匹配器 \b

\b代表一个单词的开始和结束部分,不匹配任何字符

总结

以上所述是小米给大家介绍的Java 使用正则表达式对象实现正则的获取功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小米会及时回复大家的。在此也非常感谢大家对米云问答网站的支持!

java 正则对象_网络编程Java 使用正则表达式对象实现正则的获取功能相关推荐

  1. java 求导函数_面向对象编程 —— java实现函数求导

    文章目录 首先声明一点,本文主要介绍的是面向对象(OO)的思想,顺便谈下函数式编程,而不是教你如何准确地.科学地用java求出函数在一点的导数. ★引子 defd(f) :defcalc(x) : d ...

  2. Java并发编程实战_阿里P9整理分享的亿级流量Java高并发与网络编程实战PDF

    前言 为了帮助初级开发者快速掌握高并发.网络编程.微服务.海量数据的处理这些实用技术,本文以"理论+范例"的形式对各个知识点进行了详细的讲解,力争让读者在实践中快速掌握相关知识. ...

  3. 20165310 Java实验五《网络编程与安全》

    20165310 Java实验五<网络编程与安全> 任务一 题目:①编写MyBC.java实现中缀表达式转后缀表达式的功能:②编写MyDC.java实现从上面功能中获取的表达式中实现后缀表 ...

  4. 重拾Java基础知识:网络编程

    网络编程 前言 网络体系结构 IP地址 IP地址分类 子网掩码 端口 域名 网络协议 TCP/IP协议 三次握手与四次挥手 为什么要三次握手? 为什么要四次挥手? UDP协议 HTTP协议 Socke ...

  5. Java学习——Day14:网络编程

    7.1 网络编程概述 Java是 Internet 上的语言,它从语言级上提供了对网络应用程 序的支持,程序员能够很容易开发常见的网络应用程序. Java提供的网络类库,可以实现无痛的网络连接,联网的 ...

  6. 《亿级流量JAVA高并发与网络编程实战》笔记--------更新中

    <亿级流量JAVA高并发与网络编程实战>笔记 第一章 高并发概述 "高并发技术" 是一个广义的概念,是指一种高效的地实现并发需求的解决方案,是技术领域的名称,可以包含架 ...

  7. java获取主机信息大全,网络编程:Java获取网络主机信息

    java.net.InetAddress类表示互联网协议 (IP) 地址. 有两个子类:Inet4Address, Inet6Address 通过 InetAddress可以方便获取一个域名下的IP, ...

  8. Java面试知识点:网络编程

    问题:Java面试知识点:网络编程 答案: 1.InetAddress 代码如下: package com.xy;import java.net.InetAddress; import java.ne ...

  9. 网络编程--JAVA之多线程下载后续:断点续存

    这篇博客就是接在我上篇博客网络编程–JAVA之多线程下载的基础上来实现的. 首先,我来说一下断点续存能解决啥问题: 假如当我们在进行MP4下载时,如果突然出现人为的中断或者意外的中断,那么当我们再次点 ...

最新文章

  1. 到底什么样的程序员能称为架构师?
  2. android socket通信如何抓取,安卓Socket通信实例(客户端、服务端)
  3. iOS开发之Quartz 2D绘图
  4. cmd code page
  5. leetcode-114. Flatten Binary Tree to Linked List
  6. pat 乙级 1008 数组元素循环右移问题(C++)
  7. (Python的)__ name__中包含什么?
  8. vue项目dist编译文件部署到服务器:页面空白、F5刷新报错404、403报错、等等bug - 总结篇
  9. python从入门到精通pdf-跟老齐学Python从入门到精通完整版PDF_Python教程
  10. faster rcnn论文_论文导读-从Faster-RCNN/Mask RCNN/Cascade-RCNN到HTC
  11. Matlab-基于模型不确定补偿的RBF网络机器人自适应控制仿真
  12. 【深入浅出imx8企业级开发实战 | 01】imx8qxp yocto工程构建指南
  13. 三线压力传感器原理_压力传感器接线图及原理介绍
  14. blast2go windows 下本地化
  15. linux环境变量设置详解
  16. ceph存储 FC HBA、iSCSI HBA、以太网卡3者区别
  17. 为什么淘宝京东使用不是每次都需要登录?
  18. 这可能是全网最详细的 Python 安装教程(windows)
  19. cass道路道路设计参数文件命令为什么没反应_面试官不讲武德问我:为什么MySQL不建议使用delete删除数据?
  20. 谷歌最新的百分比布局库的示例项目

热门文章

  1. 共赴技术“狂飙”之旅丨第二届开源云原生开发者日开启预约!
  2. 初三开始学计算机能够获奖吗,初三才开始学编程,还来得及NOIP拿奖吗?编程才女告诉你答案!...
  3. android项目 用手机,基于Android平台的手机记账应用开发全程实录|Android项目手机记账应用...
  4. 在线正则表达式匹配测试
  5. 绿色文艺小清新清明踏足文化PPT模板
  6. VMware虚拟机和主机共享文件
  7. F - Wi Know Kattis - wiknow
  8. 如何手写一个闭包函数
  9. TINA超级好用的电路仿真软件 中文版 下载 含用户指南入门使用教程
  10. 用3D技术实现2D场景