Java 使用正则表达式对象实现正则的获取功能

作者:qq_17503037 时间:2023-05-10 06:29:16 

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

使用的是用正则对象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 使用正则表达式对象实现正则的获取功能网站的支持!

来源:https://blog.csdn.net/qq_17503037/article/details/79908829

标签:java,正则表达式,对象
0
投稿

猜你喜欢

  • python的命名规则知识点总结

    2023-08-22 09:48:21
  • python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例

    2023-04-12 03:34:40
  • matplotlib 纵坐标轴显示数据值的实例

    2021-10-02 12:55:43
  • Golang语言如何高效拼接字符串详解

    2023-07-11 03:46:57
  • Python打印三角形九九乘法表代码

    2021-11-16 03:27:15
  • 解读数据库的嵌套查询的性能问题

    2024-01-20 17:00:06
  • CentOS下重置MySQL的root密码的教程

    2024-01-25 19:20:40
  • python dumps和loads区别详解

    2021-07-25 19:34:53
  • Python+django实现简单的文件上传

    2021-08-15 03:11:25
  • MySQL性能全面优化方法参考,从CPU,文件系统选择到mysql.cnf参数优化

    2024-01-22 16:37:20
  • Python基于numpy模块实现回归预测

    2022-11-26 19:25:32
  • 90行Python代码开发个人云盘应用

    2021-12-17 13:44:12
  • JS:window.onload的使用介绍

    2024-04-23 09:12:47
  • Tensorflow加载与预处理数据详解实现方法

    2023-01-29 02:57:09
  • 使用selenium自动控制浏览器找不到Chromedriver问题

    2023-02-02 01:32:33
  • SQL Server 2005:数据类型最大值

    2009-06-04 09:55:00
  • Python实现EXCEL表格的排序功能示例

    2021-05-17 20:50:11
  • 在Python的Django框架中实现Hacker News的一些功能

    2023-11-24 19:27:46
  • Websocket IM聊天教程 教你用GoEasy快速实现IM聊天

    2023-10-04 08:52:52
  • flask框架自定义过滤器示例【markdown文件读取和展示功能】

    2023-03-07 19:22:27
  • asp之家 网络编程 m.aspxhome.com