API

Java帮我们写好的各种功能的Java类。这些Java类统称为API。正则表达式就是API帮我们写好的类。

正则表达式

例子: 

字符类:[abc]:只能是a,b或c

              [^abc]:除了a,b,c之外的任何字符

              [a-zA-Z]:满足a-z以及A-Z这两个区间中的任意一个都可以

              [a-d[m-p]]:a到d或者m到p

              [a-z&&[def]]:a到z和def的交集。

              [a-z&&[^bc]]:a到z和非bc的交集

              [a-z&&[^m-p]]:a到z和非m到p的交集

预定义字符(只能匹配一个字符):.     任何的一个字符

                                                        \d   一个数字:[0-9]

                                                        \D   非数字:[^0-9]

                                                        \s    一个空白字符:[\t\n\x0B\f\r]

                                                        \S   非空白字符:[^\s]

                                                        \w   [a-zA-Z_0-9]英文、数字、下划线

                                                        \W   [^\w]一个非单词字符

                                                        (?i)   忽略大小写

注意:\是转义字符,所以在java中,两个\(\\)表示一个\。(借鉴如上的例子)

数量词:X?     X,一次或0次

              X*      X,零次或多次

              X+      X,一次或多次

              X{n}    X,正好n次

              X{n,}   X,至少n次

              X{n,m}  X,至少n次但不超过m次

爬虫

本地爬虫

网络爬虫

URL后面的网址,是你想要爬取的网址。 

有条件的爬取

贪婪爬取与非贪婪爬取

如果我们在用数量词获取数据时,它表示的次数不精确,那么我们到底获取的是多少次呢?这就涉及到了贪婪爬取与非贪婪爬取。

贪婪爬取:在爬取数据时尽可能多的获取数据。(java默认)

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

Java中,默认的是贪婪爬取;如果我们在数量词+ *的后面加上问号,那么此时就是非贪婪爬取

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

这里说几个常用的,因为有很多,大家可以在API文档中查阅。

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

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

public String[] split(String regex):按照正则表达式的规则切割字符串。

分组 

每组是有组号的,也就是序号。

规则1:从1开始,连续不间断。

规则2:以左括号为基准,最左边的是第一组,其次为第二组,以此类推。

 捕获分组

正则内部使用:\\组号

正则外部使用:$组号

非捕获分组

(?:正则):获取所有

(?=正则):获取前面部分

(?!正则):获取不是指定内容的前面部分

注意:这里的括号不占用分组。

如果String regex = "[1-9](?:\\d)\\1";这里后面的\\1会报错,因为他不知道哪里是第一组,这个表达式没有分组。

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

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

相关文章

【后端】.NET Core API框架搭建(8) --配置使用RabbitMQ

目录 1.添加包 2. 连接配置 2.1.连接字符串 2.2.连接对象 3.创建连接服务 3.1.添加配置获取方法 3.2.服务实现类 3.3.服务接口 4.创建生产者服务 4.1.生产者实现类 4.2.生产者接口 5.创建消费者服务 5.1.消费者服务接口 5.2.消费者接口 6.注册 7.简单使用案例 7.1.实现…

Apache SeaTunnel配置使用案例

前置操作 Apache SeaTunnel详解与部署(最新版本2.3.11)-CSDN博客 mkdir /usr/local/soft/apache-seatunnel-2.3.11/job/ 一、MySQL to HDFS 官方配置参考: MySQL | Apache SeaTunnel Hdfs文件 | Apache SeaTunnel 1、配置确认 将mysq…

GitCode 使用高频问题及解决方案

GitCode 作为一款强大的版本控制系统,在软件开发流程中起着举足轻重的作用。然而,在使用过程中,开发者们常常会遇到各种各样的问题。本文将汇总 GitCode 使用中的高频问题,并提供详细的解决方案,帮助开发者们更顺畅地使…

在FreeBSD系统使用chroot进入Ubuntu仿真环境使用Localsend软件发送和接受文件

LocalSend是一款非常实用的在不同系统(Windows、MacOS、Linux、Android和IOS)传递文件的程序。我们这次的实践,就是要在FreeBSD下也能发送和接收文件。 安装LocalSend 跟在Ubuntu下安装非常类似,只是不需要下面的第一步&#xf…

交叉熵损失F.cross_entropy在分类模型中的应用

一、核心思想:通过概率分布惩罚错误交叉熵损失的本质是: 比较模型预测的概率分布 vs 真实标签的概率分布,惩罚两者之间的差异。例如:真实标签:图像 0 → 文本 0(独热编码 [1, 0, 0, ...])模型预…

测试学习之——Pytest Day3

引言Pytest 作为 Python 中最受欢迎的测试框架之一,以其简洁的语法、强大的功能和丰富的插件生态系统,极大地提升了自动化测试的效率和可维护性。在本文中,我们将深入探讨 Pytest 的两大核心特性:Fixture 和插件管理,帮…

控制Vue对话框显示隐藏

正确做法 — 使用 Vue 数据驱动控制显隐你不需要手动设置 display: block&#xff0c;因为 Element Plus 的 <el-dialog> 是基于 v-model 或 :visible.sync 控制的。&#x1f527; 修改模板部分&#xff1a;将原来的&#xff1a;<el-dialog title"报文详情"…

直播带货与开源AI智能名片链动2+1模式S2B2C商城小程序:重塑电商营销新格局

摘要&#xff1a;本文聚焦于直播带货对互联网供需关系的深刻影响&#xff0c;分析其如何改变传统电商营销模式&#xff0c;实现从“人找货”到“货找人”的转变。同时&#xff0c;引入开源AI智能名片链动21模式S2B2C商城小程序这一创新概念&#xff0c;探讨其在直播带货背景下的…

Jmeter 性能测试响应时间过长怎么办?

当 JMeter 性能测试中出现 响应时间过长 的问题时&#xff0c;需要从 测试脚本、服务器、网络、JMeter配置 等多方面排查和优化。以下是详细的解决步骤和思路&#xff1a; B站最新性能进阶&#xff0c;学会这些jmeter性能测试技能&#xff0c;更助于正确设计、执行和分析性能测…

COZE官方文档基础知识解读第三期 —— prompt(提示词)

COZE官方文档基础知识解读第三期 —— prompt&#xff08;提示词&#xff09; 对于初步接触PE&#xff08;prompt engineering&#xff09; 的小伙伴们&#xff0c;你们可以去火山方舟提供的prompt工具&#xff0c;用工具&#xff08;其余的prompt网站https://www.promptinggu…

代码随想录算法训练营第三十二天|动态规划理论基础、LeetCode 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

目录 LeetCode 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯 感想 文档讲解&#xff1a;代码随想录 动态规划&#xff0c;英文&#xff1a;Dynamic Programming&#xff0c;简称DP&#xff0c;如果某一问题有很多重叠子问题&#xff0c;使用动态规划是最有效的。 …

SpringMVC3

一、JSON 与参数传递1.1JSON 是什么- JSON 是字符串&#xff1a;比如 {"name":"zhangsan","password":"123456","age":15} 就是一个 JSON 字符串&#xff0c;它用来在前后端、服务间传递数据。- JSON 库&#xff1a;Fastj…

查看.bin二进制文件的方式(HxD十六进制编辑器的安装)

文章目录Windows 系统上安装 HxD 十六进制编辑器的步骤。**HxD 是一款免费、轻量级的工具&#xff0c;适合查看和编辑 .bin 等二进制文件。****PS:实际安装过程中会发现找不到Windows11的版本&#xff0c;安装windows10的即可&#xff0c;并且没有区别setup版和portable版**安装…

Linux系统性能优化与监控

系统性能优化与监控是保障 Linux 服务器稳定运行的核心技术&#xff0c;涉及 ​​CPU、内存、磁盘 I/O、网络、进程​​ 等多维度的指标分析、问题定位与优化策略。以下从​​监控工具与指标​​、​​常见问题诊断​​、​​优化方法​​三个层面详细讲解&#xff0c;并结合​…

如何在 React + TypeScript 中实现 JSON 格式化功能

如何在 React TypeScript 中实现 JSON 格式化功能 作为前端开发者&#xff0c;我们经常需要处理 JSON 数据。无论是 API 调试、配置文件编辑还是数据转换&#xff0c;能够格式化 JSON 是一项基本但非常有用的技能。本文将详细介绍如何在 React 和 TypeScript 环境中实现 JSON…

Mac连接服务器Docker容器全攻略

苹果电脑( macOS 系统 )连接服务器、配置容器,整体思路和 Linux 终端操作更贴近,以下结合 macOS 特点,详细分步说明,以 Docker 容器 + 常见 Linux 服务器( 如 CentOS、Ubuntu )为例: 一、连接服务器(SSH 方式, macOS 终端原生支持 ) 1. 准备信息 找运维或云平台…

【字节跳动】数据挖掘面试题0019:带货直播间推荐:现在有一个带货的直播间,怎么把它精准地推送给有需要的用户

文章大纲 带货直播间推荐系统:原理、算法与实践 一、推荐系统在带货直播中的重要性 二、数据收集与处理 1. 用户数据 2. 直播间数据 3. 用户行为数据 4. 数据处理与特征工程 三、推荐算法实现 1. 基于内容的推荐 2. 基于协同过滤的推荐 3. 基于知识图谱的推荐 4. 混合推荐算法…

Windows10笔记本电脑开启BIOS

文章目录什么是BIOS一、方案一&#xff1a;快捷键进入二、方案二&#xff08;推荐&#xff09;各品牌快捷键大全什么是BIOS BIOS 全拼为 BasicInputOutputSystem, 即基本输入/输出系统,是计算机中非常基础而且重要的程序。把这一段程序存放在一个不需要电源的记忆体(芯片)中,就…

NFS、iSCSI 和lnmp部署操作

目录 &#xff08;一&#xff09;基础配置 1.NFS服务安装 2.修改配置文件 3.重载配置文件 4.查看共享目录 5.客户端挂载 6.更换共享目录 7.基础实验 &#xff08;二&#xff09;布置lnmp平台 1.php 安装软件 检测 2.连接MySQL 测试 3.软件实施 软件安装配置 &…

Redis深度解析:从缓存原理到高并发实战

第一部分&#xff1a;Redis核心概念与架构设计1.1 Redis本质解析Redis&#xff08;Remote Dictionary Server&#xff09;作为开源的内存数据结构存储系统&#xff0c;其核心价值在于&#xff1a;内存优先架构&#xff1a;数据主要存储在内存中&#xff0c;读写性能达到10万 QP…