Java学习笔记------常用API(五)

爬虫

从网站中获取

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class date {public static void main(String[] args) throws IOException {//创建一个URL对象,获取网址URL url=new URL("https://zhuanlan.zhihu.com/p/465034540");//细节,保持网络畅通URLConnection conn=url.openConnection();//创建一个对象去读取网络中的数据BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream()));//获取正则表达式对象Pattern p=Pattern.compile("Java\\d{0,2}");//在读取时每次读一行String line;while((line=br.readLine())!=null){//文本适配器获取正则表达式规定文本Matcher m= p.matcher(line);while (m.find()){System.out.println(m.group());}}br.close();}
}

上述代码运行后即可获得Java?(?为空或数字) 

带条件获取

只获取Java1和7,其他版本只要Java,可以这样写正则表达式"Java(?=1|7)"即可

java无视大小写可以这样写"((?i)Java)",

去掉1和7这样写"Java(?!1|7)"

只获取1和7,这样写"Java(?:1|7)"或者"Java(1|7)"

贪婪爬取

贪婪爬取:在爬取数据的时候尽可能多爬取数据

非贪婪爬取:在爬取数据的时候尽可能少爬取数据

例如:String str="abbbbbbbbb";

正则表达式为"ab+"会获取abbbbbbbbb

为"ab+?"则获取ab

正则表达式在字符串方法中使用

public String[]  matches(String regex)    //判断字符串是否满足正则表达式规则

public String replaceAll(String regex,String newStr) //按照正则表达式的规则进行替换

public String[] split(String regex)  //按照正则表达式的规则切割字符串,数组接受

分组

正则表达式分组,每组是有组号的,也就是序号

规则:从一开始连续不间断,以左括号为基准,最左边为第一组,依次类推

 (\组号):这一组内容和(\后面组号)的组内容相同

例如:(.+)(.+)(\\1)    即第三组与第一组一致

*:作用于某一组(写在后面),表示后面重复的内容出现0次或多次

例如:(.+)\\1*

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;import static java.util.regex.Pattern.matches;public class date {public static void main(String[] args) throws IOException {String s="(.+)(123)(\\1*)";System.out.println("aaa123aaaaaa". matches(s));//true}
}

捕获分组

正则内部使用:\\组号

正则外部使用:$组号

例如:String s="JJaaaaavvvvaaaa";

String str=s.reeplaceAll("(.)\\1+","$1");//str内容使Java

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/544121.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL语法分类 DQL(4)聚合函数

为了更好的学习这里给出基本表数据用于查询操作 create table student (id int, name varchar(20), age int, sex varchar(5),address varchar(100),math int,english int );insert into student (id,name,age,sex,address,math,english) values (1,马云,55,男,杭州,66,78),…

php中 0 == ‘’(0等于任意字符串) 判断是否成立 返回true

php中不同类型变量之间比较大小 一、背景二、探究0是为什么?三、探究 0all是为什么?四、程序中如何判断0是否等于指定字符串 一、背景 最近在项目实际开发中,我需要判断前端传来的参数值是否等于一个字符串;然后发现当参数值是0时…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Tabs)

通过页签进行内容视图切换的容器组件,每个页签对应一个内容视图。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 该组件从API Version 11开始默认支持安全区避让特性(默认值为&#x…

L1-070 吃火锅分数 15

我们老师的话说就是,你学长睡了四年的床板子你不收拾收拾就往上躺着睡觉吗???一定要记得用到计数变量时首先要赋初值0或者其他,按题目要求来。 用 输入样例 1: Hello! are you there? wantta chi1 huo3…

Python爬虫 Day1

要注意看网页的请求方式是request还是get 一、小型爬虫 (爬百度首页) from urllib.request import urlopen url "https://www.baidu.com" resp urlopen(url) print(resp.read().decode(utf-8)) print("over!") //!&am…

Linux磁盘配额

磁盘配额 概述 Linux系统作为一个多用户的操作系统,在生产环境中,会发生多个用户共同使用一个磁盘的情况,会造成Linux根分区的磁盘空间耗尽,导致Linux系统无法建立新的文件,从而出现服务程序崩溃、系统无法启动等故障…

Transformer学习笔记(二)

一、文本嵌入层Embedding 1、作用: 无论是源文本嵌入还是目标文本嵌入,都是为了将文本中词汇的数字表示转变为向量表示,希望在这样的高维空间捕捉词汇间的关系。 二、位置编码器Positional Encoding 1、作用: 因为在Transformer…

MyBatis3源码深度解析(十二)MyBatis的核心组件(一)Configuration

文章目录 第四章 MyBatis的核心组件4.1 使用MyBatis操作数据库4.2 MyBatis核心组件4.3 Configuration组件4.3.1 属性4.3.2 设置4.3.3 类型别名4.3.3 类型处理器4.3.5 对象工厂4.3.6 插件4.3.7 配置环境4.3.8 映射器 第四章 MyBatis的核心组件 4.1 使用MyBatis操作数据库 在研…

代码随想录训练营Day25:● 216.组合总和III ● 17.电话号码的字母组合

216.组合总和III 题目链接 https://leetcode.cn/problems/combination-sum-iii/description/ 题目描述 思路 自己写的效率会慢一些&#xff0c;而且没有用到剪枝 class Solution {List<List<Integer>> list new ArrayList<>();List<Integer> lis…

【C语言步行梯】各类操作符、类型转换与原码、反码、补码详谈

&#x1f3af;每日努力一点点&#xff0c;技术进步看得见 &#x1f3e0;专栏介绍&#xff1a;【C语言步行梯】专栏用于介绍C语言相关内容&#xff0c;每篇文章将通过图片代码片段网络相关题目的方式编写&#xff0c;欢迎订阅~~ 文章目录 算术运算符原码、反码、补码介绍移位运算…

下载程序到嵌入式开发板教程

一、设置共享目录 ubuntu与Window共同拥有的目录。 第一步&#xff1a;在Windows下创建一个文件夹share 第二部&#xff1a;点击虚拟机--->设置--->选项--->共享文件夹 进入共享目录的命令&#xff1a;cd/mnt/hgfs/share 二、C语言编译器 使用Linux平台下的gcc编…

LeetCode102题:二叉树的层序遍历(python3)

代码思路&#xff1a;使用队列先进先出的特性&#xff0c;queue[]不为空进入for循环&#xff0c;tmp存储每层的节点&#xff0c;将结果添加至res[]中。 python中使用collections中的双端队列deque()&#xff0c;其popleft()方法可达到O(1)时间复杂度。 class Solution:def lev…