正则表达式系列|(以xx开头xx结尾提取、切分、替换)
正则表达式系列|(以xx开头xx结尾提取、切分、替换)
文章目录
- 正则表达式系列|(以xx开头xx结尾提取、切分、替换)
- @[TOC]
- 前言
- 一、以xx开头xx结尾进行数据处理?
- 1.以xx开头xx结尾对文本拆分
- 2.以xx开头xx结尾提取内容
- 3.以xx开头xx结尾提取中间内容
- 4.以xx开头xx结内容替换
- 5.以xx开头xx结内容替换,并且标记序号
- 总结
文章目录
- 正则表达式系列|(以xx开头xx结尾提取、切分、替换)
- @[TOC]
- 前言
- 一、以xx开头xx结尾进行数据处理?
- 1.以xx开头xx结尾对文本拆分
- 2.以xx开头xx结尾提取内容
- 3.以xx开头xx结尾提取中间内容
- 4.以xx开头xx结内容替换
- 5.以xx开头xx结内容替换,并且标记序号
- 总结
章节
第一章链接: 正则表达式系列|(以xx开头xx结尾提取切分)
前言
正则表达式是对字符串操作的一种逻辑公式;作用:检索、替换那些符合某个模式(规则)的文本,可以通过一些设定的规则来匹配一些字符串,是一个强大的字符串匹配工具。
一、以xx开头xx结尾进行数据处理?
1.以xx开头xx结尾对文本拆分
//示例String content = "这是一个标签<table>你好啊</table>标签结尾";private static void meth1(String content) {String[] tables = content.split("<table>.*?</table>");for (String table : tables) {System.out.println(table);}}
结果
输入:"这是一个标签<table>你好啊</table>标签结尾"
输出:
"这是一个标签"
"标签结尾"
2.以xx开头xx结尾提取内容
//示例String content = "这是一个标签<table>你好啊</table>标签结尾";private static void meth2(String content) {Pattern pattern = Pattern.compile("<table>.*?</table>");Matcher matcher = pattern.matcher(content);while (matcher.find()) {System.out.println(matcher.);System.out.println(matcher.group().trim());}}
结果
输入:"这是一个标签<table>你好啊</table>标签结尾"
输出:"<table>你好啊</table>"输入:"这是一个标签<table>你好啊1</table>标签结尾<table>你好啊2</table>结尾"
输出:
"<table>你好啊1</table>"
"<table>你好啊2</table>"
3.以xx开头xx结尾提取中间内容
matcher.group(1)表示获取第一个括号里面的内容,matcher.group()获取整个内容
//示例private static void meth3(String content) {Pattern pattern = Pattern.compile("<table>(.*?)</table>");Matcher matcher = pattern.matcher(content);while (matcher.find()) {String extractedText = matcher.group(1);System.out.println(extractedText);}}
结果
输入:"这是一个标签<table>你好啊1</table>标签结尾<table>你好啊2</table>结尾"
输出:
"你好啊1"
"你好啊2"
4.以xx开头xx结内容替换
private static void meth4(String content) {Pattern pattern = Pattern.compile("<table>(.*?)</table>");Matcher matcher = pattern.matcher(content);String result = matcher.replaceAll("##");System.out.println(result);}
结果
输入:"这是一个标签<table>你好啊1</table>标签结尾<table>你好啊2</table>结尾"
输出:"这是一个标签##标签结尾##结尾"
5.以xx开头xx结内容替换,并且标记序号
private static void meth4(String content) {String patternString = "<table>(.*?)</table>";Pattern pattern = Pattern.compile(patternString);Matcher matcher = pattern.matcher(content);StringBuffer output = new StringBuffer();int count = 1;while (matcher.find()) {String replacement = "<替换后内容"+count+">";matcher.appendReplacement(output, replacement);count++;}matcher.appendTail(output);System.out.println("替换结果:" + output);}
结果
输入:"这是一个标签<table>你好啊1</table>标签结尾<table>你好啊2</table>结尾"
输出:"这是一个标签<替换后内容1>标签结尾<替换后内容2>结尾"
总结
以上就是正则表达式用来检索、替换那些符合某个模式(规则)的文本案例,后续会陆续补充完善
相关文章:
正则表达式系列|(以xx开头xx结尾提取、切分、替换)
正则表达式系列|(以xx开头xx结尾提取、切分、替换) 文章目录 正则表达式系列|(以xx开头xx结尾提取、切分、替换)[TOC] 前言一、以xx开头xx结尾进行数据处理?1.以xx开头xx结尾对文本拆分2.以xx开头xx结尾提取内容3.以xx…...
金融学复习博迪(第1-5章)
第一部分 金融和金融体系 第1章 金融学 金融:资金的流通,即储蓄,信贷、汇兑、股票和证券交易等经济活动的总称。 金融学:研究货币流通的学问。 传统的金融学研究领域大致有两个方向: >宏观层面的金融市场运行理论…...
【前端知识】React 基础巩固(三十七)——自定义connect高阶组件
React 基础巩固(三十七)——自定义connect高阶组件 一、手撸一个自定义connect高阶组件 import { PureComponent } from "react"; import store from "../store";/*** connect的参数:* 参数一: 函数* 参数二: 函数* 返…...
前端PDF导出,使用html2Canvas和jsPDF插件
import html2Canvas from "html2canvas"; import jsPDF from "jspdf"; export function downloadPDF(dom, filename) {const scale 2;window.pageYOffset 0;// 滚动到顶部,避免打印不全document.documentElement.scrollTop 0;document.body.…...
Android 设备兼容性使用详解
和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、设备兼容性分类二、硬件设备兼容三、软件 APP 兼容四、兼容不同语言五、兼容不同分辨率六、兼容不同屏幕方向布局七、兼容不同硬件 Feature八、兼容…...
vnc加固
0x00 认识VNC 先我们看看VNC运行的工作流程: VNC客户端通过浏览器或VNC Viewer连接至VNC Server; VNC Server传送一个对话窗口至客户端,要求输入连接密码(可能为空),以及存取的VNC Server显示装置&#…...
Windows下Nginx安装与配置教程
一、前言 1、Nginx是什么? Nginx是一个开源的Web服务器,同时Nginx也提供了反向代理和负载均衡的功能。 Nginx通常作为负载均衡器暴露在外网接受用户请求,同时也使用其反向代理的功能,将用户的请求转发到实际提供服务的内网服务器…...
Iterator迭代器和Generator生成器
Iterator迭代器和for/of循环原理 Iterator迭代器规范 自己创建一个Iterator类,来实现ES6中的迭代器规范: class Iterator {constructor(assemble) {// assemble:需要迭代的数据结构this.assemble = assemble// index:记录迭代的次数(或者索引)this.index = -1}// 必须具…...
Modbus-RTU协议C#实现
1、安装依赖包 System.IO.Ports 2、读协议 /// <summary>/// Modbus-RTU协议读实例/// </summary>private static void Read(){//组装一个请求报文// 01 03 00 00 00 0A C5 CDbyte slave 0x01;//byte function 0x03; //读单个寄存器byte function 0x01; //…...
Redis学习---大数据技术之Redis(NoSQL简介、Redis简介、Redis安装、五大数据类型、相关配置、持久化)
星光下的赶路人star的个人主页 毅力是永久的享受 文章目录 1、NoSQL1.1 NoSQL数据库1.1.1 NoSQL是什么1.1.2 NoSQL的特点1.1.3 NoSQL的适用场景1.1.4 NoSQL的不适场景 1.2 NoSQL家族 2、Redis简介2.1 Redis官网2.2 Redis是什么2.3 Redis的应用场景2.3.1 配合关系型数据库做高速…...
基于组合双向拍卖的共享储能机制研究(Matlab代码实现)
目录 💥1 概述 📚2 运行结果 2.1 算例数据 2.2 买家中标 2.3 卖家中标 🎉3 文献来源 🌈4 Matlab代码实现 💥1 概述 文献来源: 摘要:为满足共享储能中储能用户的互补性和替代性需求、解决常规单…...
服务机器人有哪些品类
服务机器人是指具备自主运动、感知环境、实现人机交互等能力的机器人,它可以被应用于不同的场景,如餐饮、医疗、物流等行业。根据其功能和应用场景的不同,服务机器人可以分为以下几类:1. 餐饮服务机器人 随着社会发展和人们需…...
3.netty和protobuf
1.ChannelGroup可以免遍历由netty提供,覆盖remove方法即可触发删除channel\ 2.群聊私聊 13.群聊私聊简单原理图 3.netty心跳检测机制,客户端对服务器有没有读写(读,写空闲) //IdleStateHandler(3,5,7,TimeUnite.SECONDS)是netty提供的检测状态的处理器,也加到pipeline,读,写,…...
NLP实践——Llama-2 多轮对话prompt构建
NLP实践——Llama-2 多轮对话prompt构建 1. 问题提出2. prompt的正确形式3. 效果测试4. 结尾 1. 问题提出 最近,META开源了Llama-2模型,受到了广泛的关注和好评,然而,在官方给的使用说明中,并没有对使用方法进行特别细…...
《TCP IP网络编程》第十四章
第 14 章 多播与广播 14.1 多播 多播(Multicast)方式的数据传输是基于 UDP 完成的。因此 ,与 UDP 服务器端/客户端的实现方式非常接近。区别在于,UDP 数据传输以单一目标进行,而多播数据同时传递到加入(注…...
网络基础-认识每层的设备和每层的特点用途
目录 网络层次常见设备各层介绍数据链路层网络层传输层应用层 网络层次 常见设备 各层介绍 数据链路层 有了MAC地址。数据链路层工作在局域网中的,以帧为单位进行传输和处理数据。 网络层 网络层有了IP。不同的网络通过路由器连接成为互联网 路由器的功能: …...
【Linux操作系统】深入解析Linux定时任务调度机制-cronat指令
在Linux操作系统中,定时任务调度是一项重要的功能,它可以让用户在指定的时间或周期性地执行特定的任务。这种机制使得用户能够自动化地执行一些重复性工作,提高工作效率。本文将详细介绍Linux定时任务调度的原理、常用指令和代码示例…...
动手学深度学习(一)预备知识
目录 一、数据操作 1. N维数组样例 2. 访问元素 3. 基础函数 (1) 创建一个行向量 (2)通过张量的shape属性来访问张量的形状和元素总数 (3)reshape()函数 (4)创建全0、全1、…...
item_get-KS-获取商品详情
一、接口参数说明: item_get-根据ID取商品详情 ,点击更多API调试,请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/ks/item_get 名称类型必须描述keyString是调用key(http://o0b.cn/…...
[华为OD] 最小传输时延(dijkstra算法)
明天就要面试了我也太紧张了吧 但是终于找到了一个比较好理解的dijkstra的python解法,让我快点把它背下来!!!! 文章目录 题目dijkstra算法的python实现python解答dfs解法dijkstra解法 题目 先把题目放出来 某通信网络…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...
