java正则表达式对象_.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 = "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 使用正则表达式对象实现正则的获取功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值