JAVA笔记:正则表达式

简介

正则表达式一般适用于复杂文本的处理,是强大又灵活的文本处理工具,几乎所有的编程语言都支持正则表达式。主要是通过一个规则匹配一类字符串

正则表达式规则

在这里插入图片描述图源于百度,侵权删。
一直保存了这个图片,个人觉得这个图就够大部分正则表达式使用了

正则表达式的使用

在JAVA中java,util.regex包下已经封装好了大部分的方法
核心类:
Pattern:
正则表达式的编译表示形式。
Pattern p = Pattern. compile ( r,int ) ; //建立正则表达式,并启用相应模式
Matcher:
与 Pattern 一起使用,对character[]执行匹配操作
Matcher m = p.matcher(str); //匹配str字符串

使用步骤:
1、创建表达式
2、创建Matcher对象
3、对结果操作

Demo

		Pattern p = Pattern.compile("([a-z]+)([0-9]+)");
		Matcher m = p.matcher("hello23333hi");
		while(m.find()) {
			System.out.println(m.group());//==>group(0)匹配整个字符串//hello23333
			System.out.println(m.group(1));//hello
			System.out.println(m.group(2));//23333
		}

推荐一个测试正则的app——RegexBuddy.exe
在这里插入图片描述挺好用的一个测试正则表达式程序

Demo
爬取网站,得到超链接

@Test
	void test() throws Exception {
		StringBuilder sb = new StringBuilder();
		URL url = new URL("http://www.163.com");
		//部分网页需要模拟请求
		HttpURLConnection connection = (HttpURLConnection) url.openConnection();
		connection.setRequestMethod("GET");
		//
		connection.setRequestProperty("User-Agent", 
				"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36");
		BufferedReader reader = new BufferedReader(
				new InputStreamReader(connection.getInputStream(),Charset.forName("gbk")));
		String result = "";
		while((result = reader.readLine())!=null) {
			sb.append(result);
		}
		//匹配所有的超链接
		Pattern pattern = Pattern.compile("href=\"([a-zA-Z]+:\\/\\/[^\\s]+)\"");
		Matcher m = pattern.matcher(sb.toString());
		while(m.find()) {
			System.out.println(m.group(1));
		}
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值