这篇文章主要介绍了Java 使用正则表达式对象实现正则的获取功能 ,需要的朋友可以参考下

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

使用的是用正则对象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 = "[email protected]";
  mail = "[email protected]";
  String reg = "[a-zA-Z_0-9][email protected][a-zA-Z0-9]+(\\.[a-zA-Z]+)+";
  reg = "\\[email protected]\\w+(\\.\\w+)+";//简化的规则。笼统的匹配。
  boolean b = mail.matches(reg);
  System.out.println(mail+":"+b);
}

网络爬虫 (获取邮箱)

class GetMailList 
{
public static void main(String[] args) throws Exception
{
  String reg = "\\[email protected][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 使用正则表达式对象实现正则的获取功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对爱安网网站的支持!

最新资讯
被硅谷冲击:传统汽车制造企业试图转型成服务提供商

被硅谷冲击:传统汽车制

在Uber等共享出行企业和无人驾驶技术的压力下,传统汽车
Uber筹划在2021年前建立无人机队递送食品业务

Uber筹划在2021年前建

这项业务名为UberExpress,这是Uber预制食品递送业务Ube
因电费低廉被挖矿企业滥用 美国华盛顿州已禁止挖矿

因电费低廉被挖矿企业

美国华盛顿州因为电费相对较低,聚集了很多包括GigaWatt
台媒:iPhone XR需求旺盛 苹果向主要供应链追加订单

台媒:iPhone XR需求旺

业界传出苹果看好iPhone XR新机销售,近期已向台积电、
永辉超市半年内7登食品安全黑榜 网友吐槽声铺天盖地

永辉超市半年内7登食

日前,国家市场监督管理总局发布了今年以来第39批次食品
最新研究:碳纤维可储存电能 可用于电动汽车车身

最新研究:碳纤维可储存

查尔默斯理工大学材料与计算力学教授Leif Asp对碳纤维
最新文章
正则表达式re.sub替换不完整的问题及完整解决方案

正则表达式re.sub替换

re.sub是个正则表达式方面的函数,用来实现通过正则表达
正则表达式实现字符串每4位后自动加空格效果(两种方法)

正则表达式实现字符串

本文通过两种方法给大家介绍了正则表达式实现字符串每
正则表达式grep用法详解

正则表达式grep用法详

grep是一种文本过滤工具,接下来通过本文给大家介绍正则
正则表达式实现添加、删除、替换三种功能

正则表达式实现添加、

本文的一段实例代码实现了通过用正则表达式来对某一个
SQL 正则表达式及mybatis中使用正则表达式

SQL 正则表达式及myba

这篇文章主要介绍了SQL 正则表达式及mybatis中使用正
JavaScript 正则表达式与字符串查找方法

JavaScript 正则表达

今天小编就为大家分享一篇JavaScript 正则表达式与字