/*
*正则表达式,是一种专门用于操作字符串的规则,通过一些符号来表示,简化了对字符串的复杂操作。弊端:阅读性较差。
*
*常见操作: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;
}
}Regex
最新推荐文章于 2025-12-11 08:58:14 发布
本文介绍正则表达式的常见操作,包括匹配、获取、切割及替换等,并通过实例展示如何提取文件中的特定数字并替换。此外,还提供了一个邮件爬虫的示例,展示了正则表达式在网络爬虫中的应用。
3598

被折叠的 条评论
为什么被折叠?



