Regex

本文介绍正则表达式的常见操作,包括匹配、获取、切割及替换等,并通过实例展示如何提取文件中的特定数字并替换。此外,还提供了一个邮件爬虫的示例,展示了正则表达式在网络爬虫中的应用。
/*
 *正则表达式,是一种专门用于操作字符串的规则,通过一些符号来表示,简化了对字符串的复杂操作。弊端:阅读性较差。
 *
 *常见操作:1.匹配	String	
 *
 *					boolean matches(Stirng regex)
 *
 *			2.获取(查找)	Pattern,Matcher
 *
 *					Pattern p = Pattern.compile(regex);//封装成一个模式
 *
 *					Matcher m = p.matcher(string);//关联需要匹配的字符串,并返回一个相关的匹配器
 *
 *					while(m.find())//寻找字符串中相匹配的字符子串
 *					{
 *						String s = m.group();//取出相匹配的字符子串
 *
 *						System.out.println(s);
 *					}
 *
 *			3.切割	String
 *
 *					String[] split(regex);
 *
 *			4.替换	String
 *
 *					String replaceAll(regex,replacement);
 *
 *
 *			示例:取出文件中的大于5位的数字,并替换成#。
 *
 *					String regex = "\\d{5,}";
 *
 *					Pattern p = Pattern.compile(regex);
 *
 *					Matcher m = p.matcher(string);
 *
 *					while(m.find())
 *					{
 *						String s = m.group();
 *
 *						s.replaceAll(regex,"#");
 *					}
 *
 *			应用:网络爬虫,通过网络以及IO,读取网页的源文件,并通过规则获取网页中符合规则的数据。
 *
 *					mail爬虫:
 *
 *					String mailreg = "[a-zA-Z0-9_]{6,12}@[a-zA-Z0-9]+(\\.[a-zA-z]+)+";
 *
 *					正则表达式中组的含义:将部分规格进行封装,以便重用。可以通过\\number,反向引用指定组。
 *					
 */
package classfile;
import java.util.regex.*;

/**
 *正则表达式
 *@author programmer
 */
public class RegexDemo
{
	//主函数
	public static void main(String[] args)
	{
		//匹配一个特殊的电话号码
		System.out.println(myMatches("^1[3458]\\d{4}[0-9]{5}$","13567811111"));
	}

	/**
	 *本方法可以通过传入的正则表达式和需要做匹配的字符串,判断两者是否完全相匹配。
	 *
	 *@param regex
	 *		一个正则表达式
	 *
	 *@param match
	 *		一个需要做匹配的字符串
	 *
	 *@return 返回匹配的结果
	 */
	public static boolean myMatches(String regex,String match)
	{
		//将给定的正则表达式,封装成一个模式。
		Pattern pattern = Pattern.compile(regex);
		
		//给这个模式关联一个字符串,封装成一个匹配器,并返回它。
		Matcher matcher = pattern.matcher(match);

		//通过匹配器的mathes方法,验证匹配器中的字符串是否与其中的正则表达式相匹配。仅当整个字符串与正则表达式相匹配时,才返回true。
		boolean b = matcher.matches();

		return b;
	}
	
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值