当前位置: 首页 > news >正文

RegExp正则表达式左限定右限定左右限定,预查询,预查寻,断言 : (?<= , (?= , (?<! , (?!

RegExp正则表达式左限定右限定左右限定,预查询,预查寻,断言 : (?<= , (?= , (?<! , (?! 有好多种称呼

(?<= , (?= , (?<! , (?! 有好多种称呼 ,

在这里插入图片描述


我称为: 左限定, 右限定, 左否定, 右否定

  • (?<=左限定)    (?=右限定)
  • (?<!左否定)    (?!右限定)

在这里插入图片描述

再提炼

  • ?<=    ?=
  • ?<!    ?!

在这里插入图片描述


其它的称呼

正则表达式预查寻分为 4 种:

  1. 正向肯定预查: (?=pattern) (?=pattern)
  2. 正向否定预查: (?!pattern) (?!pattern)
  3. 反向肯定预查: (?<=pattern) (?<=pattern)
  4. 反向否定预查: (?<!pattern) (?<!pattern)

比如:

  • 匹配 babcab 中的第二个b, 可以用 (?<=a)b(?=c), 含义是:左a右c的b
  • (?<!a)b(?!c)的含义是: 左非a右非c的b, 它会匹配到第一个b

或者称为:

  1. 正向零宽度先行断言: (?=exp) (?=exp)
  2. 正向零宽度回顾后断言: (?!exp) (?!exp)
  3. 负向零宽度先行断言: (?<=exp) (?<=exp)
  4. 负向零宽度回顾后断言: (?<!exp) (?<!exp)

或者称为:

  • 肯定性:匹配 regex
  • 否定性:不匹配 regex
  • 前瞻:向前(右、正向)看(预查)
  • 后顾:向后(左、反向)看(预查)
  • 肯定性前瞻:先看看前方(右边)是否匹配 regex,但不向前走
  • 否定性前瞻:先看看前方(右边)是否不匹配 regex,但不向前走
  • 肯定性后顾:回头看后方(左边)是否匹配 regex
  • 否定性后顾:回头看后方(左边)是否不匹配 regex

或者称为:

菜鸟教程-正则表达式的先行断言(lookahead)和后行断言(lookbehind)

  • (?=pattern) 零宽正向先行断言(zero-width positive lookahead assertion)
  • (?!pattern) 零宽负向先行断言(zero-width negative lookahead assertion)
  • (?<=pattern) 零宽正向后行断言(zero-width positive lookbehind assertion)
  • (?<!pattern) 零宽负向后行断言(zero-width negative lookbehind assertion)

菜鸟教程-正则表达式 - 元字符
`

字符描述
(?=pattern)

正向肯定预查(look ahead positive assert),在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。

例如,"Windows(?=95|98|NT|2000)"能匹配"Windows2000"中的"Windows",但不能匹配"Windows3.1"中的"Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

(?!pattern)

正向否定预查(negative assert),在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。

例如"Windows(?!95|98|NT|2000)"能匹配"Windows3.1"中的"Windows",但不能匹配"Windows2000"中的"Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

(?<=pattern)反向(look behind)肯定预查,与正向肯定预查类似,只是方向相反。

例如,"(?<=95|98|NT|2000)Windows"能匹配"2000Windows"中的"Windows",但不能匹配"3.1Windows"中的"Windows"。
(?<!pattern)反向否定预查,与正向否定预查类似,只是方向相反。

例如"(?<!95|98|NT|2000)Windows"能匹配"3.1Windows"中的"Windows",但不能匹配"2000Windows"中的"Windows"。



来自 文心一言 4.0

在正则表达式中,如果你想限定一个模式(pattern)的左右相邻内容,你可以使用断言(assertions)。常见的断言有:

  1. 正向前瞻断言(Positive Lookahead) - (?=pattern)

    • 表示之后的字符序列需要匹配给定的模式,但该模式本身不会成为匹配结果的一部分。
  2. 负向前瞻断言(Negative Lookahead) - (?!pattern)

    • 表示之后的字符序列不能匹配给定的模式。
  3. 正向后顾断言(Positive Lookbehind) - (?<=pattern)

    • 表示之前的字符序列需要匹配给定的模式,但该模式本身不会成为匹配结果的一部分。
  4. 负向后顾断言(Negative Lookbehind) - (?<!pattern)

    • 表示之前的字符序列不能匹配给定的模式。

请注意,不是所有的正则表达式引擎都支持后顾断言,尤其是负向后顾断言。

下面是一些例子:

  • 匹配被"abc"和"def"包围的字符串:

    (?<=abc).*?(?=def)
    

    在这个例子中,.*? 是一个懒惰量词,它会匹配尽可能少的字符直到遇到 def

  • 匹配不被数字包围的单词:

    \b(?<![0-9])[a-zA-Z]+\b(?![0-9])
    

    这里使用了单词边界 \b,负向后顾断言 (?<![0-9]) 和负向前瞻断言 (?![0-9]) 来确保单词的前后都不是数字。

  • 匹配被引号包围的文本(不包含引号本身):

    (?<=")[^"]*(?=")
    

    这个表达式使用了正向后顾断言 (?<=") 和正向前瞻断言 (?=") 来匹配引号之间的文本。[^"]* 匹配除引号外的任意字符(0个或多个)。

请记住,正则表达式中特殊字符和元字符通常需要转义(例如,在字符串中使用 \\ 代替 \,使用 \" 代替 ")。这取决于你使用的编程语言和上下文。

最后,由于正则表达式的复杂性和多样性,建议在实际应用中仔细测试你的表达式以确保它按照预期工作。



来自 文心一言 3.5

正则表达式预查寻(也称为预查或断言)是一种特殊的匹配技术,用于在匹配位置之前或之后执行条件判断,而不会真正消耗字符串中的字符。预查寻可以用来限定左右相邻的内容,确保它们符合特定的模式。

预查寻包括正向预查和反向预查,每种预查又可以分为肯定预查和否定预查。

  1. 正向预查:

    • 正向肯定预查:语法为 (?=pattern)。它会匹配任何位置,该位置后面紧跟着符合指定模式的字符串。但是,该模式本身不会被包括在匹配结果中。例如,表达式 Windows(?=95|98|NT) 会匹配任何以“Windows”开始,后面紧跟着“95”、“98”或“NT”的字符串。但匹配结果只包括“Windows”,不包括后面的操作系统版本。
    • 正向否定预查:语法为 (?!pattern)。它会匹配任何位置,该位置后面不能紧跟着符合指定模式的字符串。例如,表达式 \d+(?!\.) 会匹配任何不以小数点结尾的数字序列。
  2. 反向预查:

    • 反向肯定预查:语法为 (?<=pattern)。它会匹配任何位置,该位置前面紧挨着符合指定模式的字符串。但是,该模式本身不会被包括在匹配结果中。例如,表达式 (?<=19|20)\d{2} 会匹配任何以“19”或“20”开始的两位数字,但匹配结果不包括前面的“19”或“20”。
    • 反向否定预查:语法为 (?<!pattern)。它会匹配任何位置,该位置前面不能紧挨着符合指定模式的字符串。请注意,这种形式的反向否定预查在大多数正则表达式引擎中不受支持。

预查寻在正则表达式中非常有用,特别是在处理复杂的模式匹配和验证时。通过使用预查寻,你可以更精确地控制匹配的位置,确保左右相邻的内容符合特定的要求。



问 C知道 “如何用正则表达式限定左右相邻内容”

使用正则表达式可以通过限定左右相邻内容来配特定的模式。以下是一种常用的方法:

import re# 使用正则表达式限定左右相邻内容
pattern = r'(?<=左边的内容)要匹配的内容(?=右边的内容)'# 在文本中搜索匹配的内容
text = "左边的内容要匹配的内容右边的内容"
matches = re.findall(pattern, text)# 输出匹配的结果
for match in matches:print(match)

在上述代码中,我们使用了正则表达式的两个特殊符号来限定左右相邻内容:

  • (?<=左边的内容):表示要匹配的内容的左边必须是指定的左边内容。
  • (?=右边的内容):表示要匹配的内容的右边必须是指定的右边内容。

你可以根据实际情况修改左边的内容要匹配的内容右边的内容来适应你的需求。



问 C知道 “正则表达式预查寻”

正则表达式预查是一种特殊的正则表达式语法,用于在匹配过程中进行前瞻或后顾判断,而不会消耗字符。预查可以帮助我们在匹配时确定某些条件是否满足,从而更精确地匹配目标字符串。

正则表达式预查分为正向预查和反向预查两种类型。正向预查用于匹配在某个位置之后的内容,而反向预查则用于匹配在某个位置之前的内容。

下面是两个示例来演示正则表达式预查的使用:

  1. 正向预查示例:匹配后面跟着数字的单词
import retext = "apple123 orange456 banana789"
pattern = r"\w+(?=\d)"  # 匹配后面跟着数字的单词
result = re.findall(pattern, text)
print(result)  # 输出:['apple', 'orange', 'banana']
  1. 反向预查示例:匹配前面跟着数字的单词
import retext = "123apple 456orange 789banana"
pattern = r"(?<=\d)\w+"  # 匹配前面跟着数字的单词
result = re.findall(pattern, text)
print(result)  # 输出:['apple', 'orange', 'banana']



问 C知道 “正则表达式断言”

正则表达式断言是一种用于匹配字符串中特定位置的模式。它们不会消耗输入字符串,只是检查当前位置是否满足某些条件。正则表达式断言分为前行断言和后行断言。

  1. 前行断言(Positive Lookahead Assertion):用于匹配当前位置后面的内容是否满足某个条件。它使用语法(?=pattern),其中pattern是一个正则表达式。例如,要匹配字符串中包含"re"的单词,但不包括"regex"和"regular",可以使用前行断言re(?=gex|gular)

  2. 后行断言(Positive Lookbehind Assertion):用于匹配当前位置前面的内容是否满足某个条件。它使用语法(?<=pattern),其中pattern是一个定长的正则表达式。后行断言在Perl和Python中有一些限制,它们只能使用定长的表达式,不能使用*+?等元字符。例如,要匹配除"regex"和"regular"之外的"re",可以使用后行断言(?<!g)re

需要注意的是,不同的编程语言对正则表达式断言的支持程度有所不同。Perl和Python对后行断言有一些限制,Java不支持*+字符,而JavaScript则不支持后行断言。

可能不正确, 经验证, JavaScript是支持(?<=a)b(?=c)这样的的
其它待验证







相关文章:

RegExp正则表达式左限定右限定左右限定,预查询,预查寻,断言 : (?<= , (?= , (?<! , (?!

RegExp正则表达式左限定右限定左右限定,预查询,预查寻,断言 : (?< , (? , (?<! , (?! 有好多种称呼 (?< , (? , (?<! , (?! 有好多种称呼 , 我称为: 左限定, 右限定, 左否定, 右否定 (?<左限定)    (?右限定)(?<!左否定)    (?!右限定) 再…...

相机图像质量研究(30)常见问题总结:图像处理对成像的影响--重影

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…...

问题记录——c++ sort 函数 和 严格弱序比较

引出 看下面这段cmp函数的定义 //按照vector第一个元素升序排序 static bool cmp(const vector<int>& a, const vector<int>& b){return a[0] < b[0]; }int eraseOverlapIntervals(vector<vector<int>>& intervals) {//按区间左端排序…...

《Go 简易速速上手小册》第9章:数据库交互(2024 最新版)

文章目录 9.1 连接数据库 - Go 语言的海底宝藏之门9.1.1 基础知识讲解安装数据库驱动数据库连接 9.1.2 重点案例&#xff1a;用户信息管理系统准备数据库Go 代码实现连接数据库添加新用户查询用户信息用户登录验证主函数 9.1.3 拓展案例 1&#xff1a;批量添加用户准备数据库Go…...

redis的hash数据结构底层简记

hash&#xff1a;k和v都是string的hash表。 HSET&#xff08;设置集合数据&#xff0c;4.0之前只能设置1个&#xff0c;之后可以设置多个&#xff09;&#xff0c;HSETNX(若k不存在则设置对应v)&#xff0c;HDEL&#xff08;删除指定kv&#xff0c;可以一次删除多个&#xff09…...

清除Django的管理员admin站点中“Recent Actions“最近活动面板上的所有信息

清除Django的管理员admin站点中"Recent Actions"最近活动面板上的所有信息 本文主要介绍了如何清除Django的管理员admin站点中"Recent Actions"最近活动面板上的所有信息 操作步骤如下 进入Django项目目录中运行代python manage.py shell进入Django shell…...

【JVM篇】ThreadLocal中为什么要使用弱引用

文章目录 &#x1f354;ThreadLocal中为什么要使用弱引用⭐总结 &#x1f354;ThreadLocal中为什么要使用弱引用 ThreadLocal可以在线程中存放线程的本地变量&#xff0c;保证数据的线程安全 ThreadLocal是这样子保存对象的&#xff1a; 在每个线程中&#xff0c;存放了一个…...

Stable Diffusion教程——stable diffusion基础原理详解与安装秋叶整合包进行出图测试

前言 在2022年&#xff0c;人工智能创作内容&#xff08;AIGC&#xff09;成为了AI领域的热门话题之一。在ChatGPT问世之前&#xff0c;AI绘画以其独特的创意和便捷的创作工具迅速走红&#xff0c;引起了广泛关注。随着一系列以Stable Diffusion、Midjourney、NovelAI等为代表…...

【JavaEE】_线程与多线程的创建

目录 1. 线程的概念 2. 创建与使用多线程 2.1 方式1&#xff1a;继承Thread类 2.2 方式2&#xff1a; 实现Runnable接口 2.3 以上两种创建线程方式的对比 3. 多线程的优势-增加运行速度 1. 线程的概念 进程的存在是由于系统的多任务执行需求&#xff0c;这也要求程序员进…...

【前端工程化面试题】如何优化提高 webpack 的构建速度

使用最新版本的 Webpack 和相关插件: 每个新版本的 Webpack 都会带来性能方面的改进和优化&#xff0c;因此始终确保你在使用最新版本。同时&#xff0c;更新你的相关插件也是同样重要的。 使用DllPlugin动态链接库: 使用DllPlugin和DllReferencePlugin来将第三方库的代码进行…...

免费chatgpt使用

基本功能如下&#xff1a; https://go.aigcplus.cc/auth/register?inviteCode3HCULH2UD...

OpenCV识别人脸案例实战

使用级联函数 基本流程 函数介绍 在OpenCV中&#xff0c;人脸检测使用的是cv2.CascadeClassifier.detectMultiScale()函数&#xff0c;它可以检测出图片中所有的人脸。该函数由分类器对象调用&#xff0c;其语法格式为&#xff1a; objects cv2.CascadeClassifier.detectMul…...

VOSK——离线语音库

文章目录 识别函数调用添加自定义热词表1. SetWords2. SetLatticeWords3. SetPartialWords使用示例注意1. SetMaxAlternatives2. SetNLSML3. SetSpkModel4. SetGrammar使用示例注意SetLogLevel示例用法注意事项 识别函数调用 在使用Vosk库进行语音识别时&#xff0c;PartialRe…...

ELAdmin 隐藏添加编辑按钮

使用场景 做了一个监控模块&#xff0c;数据都是定时生成的&#xff0c;所以不需要手动添加和编辑功能。 顶部不显示 可以使用 true 或者 false 控制现实隐藏 created() {this.crud.optShow {add: false,edit: false,del: true,download: true,reset: true}},如果没有 crea…...

浅谈Websocket

由于 http 存在⼀个明显的弊端(消息只能有客户端推送到服务器端,⽽服务器端不能主动推送到客户端),导致如果服务器如果有连续的变化,这时只能使⽤轮询,⽽轮询效率过低,并不适合。于是 WebSocket 被发明出来 WebSocket 是⼀种在 Web 应⽤程序中实现双向通信的协议。与传…...

JavaScript闭包详细介绍

文章目录 什么是闭包优点&#xff1a;变量持久化&#xff1a;封装私有变量&#xff1a;模块化&#xff1a;函数工厂&#xff1a; 缺点&#xff1a;内存占用&#xff1a;调试困难&#xff1a;过度使用导致性能下降&#xff1a; 什么是闭包 闭包是指有权访问另一个函数作用域中的…...

pytorch神经网络入门代码

import torch import torch.nn as nn import torch.optim as optim import torchvision import torchvision.transforms as transforms# 定义神经网络结构 class SimpleNN(nn.Module):def __init__(self, input_size, hidden_size, num_classes):super(SimpleNN, self).__init_…...

代码随想录算法训练营第三十四天|860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

860.柠檬水找零 链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 细节&#xff1a; 1. 首先根据题意就是只有5.的成本&#xff0c;然后就开始找钱&#xff0c;找钱也是10.和5. 2. 直接根据10 和 5 进行变量定义&#xff0c;然后去循环…...

Ditto:提升剪贴板体验的宝藏软件(复制粘贴效率翻倍、文本处理好助手)

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、什么是Ditto&#xff1f;二、下载安装三、如…...

【自然语言处理-工具篇】spaCy<2>--模型的使用

前言 之前已经介绍了spaCy的安装,接下来我们要通过下载和加载模型去开始使用spaCy。 下载模型 经过训练的 spaCy 管道可以作为 Python 包安装。这意味着它们是应用程序的一个组件,就像任何其他模块一样。可以使用 spaCy download的命令安装模型,也可以通过将 pip 指向路径或…...

Java之通过Jsch库连接Linux实现文件传输

Java之通过JSch库连接Linux实现文件传输 文章目录 Java之通过JSch库连接Linux实现文件传输1. JSch2. Java通过Jsch连接Linux1. poxm.xml2. 工具类3. 调用案例 1. JSch 官网&#xff1a;JSch - Java Secure Channel (jcraft.com) JSch是SSH2的纯Java实现。 JSch 允许您连接到 ss…...

Nginx七层负载均衡之动静分离

思路: servera:负载均衡服务器 serverb:静态服务器 serverc:动态服务器 serverd:默认服务器 servera(192.168.233.132): # 安装 Nginx 服务器 yum install nginx -y#关闭防火墙和selinux systemctl stop firewalld setenforce 0# 切换到 Nginx 配置文…...

305_C++_定义了一个定时器池 TimerPool 类和相关的枚举类型和结构体

头文件:定义了一个定时器池 TimerPool 类和相关的枚举类型和结构体 #ifndef TIMERPOOL_H #define TIMERPOOL_H #include "rsglobal.h" #include "taskqueue.h" #incl...

大整数因数分解工具——yafu

一、安装 yafu--下载链接 二、配置环境变量&#xff0c;直接从cmd打开 1.找到yafu-x64.exe 所在的文件路径 2.点击设置——系统——系统信息——高级系统设置——环境变量——点击PATH&#xff08;上下都可以&#xff09;——新建 添加yafu-x64.exe 所在路径——点击确定 3…...

非关系型数据库(NOSQL)和关系型数据库(SQL)区别详解

前言&#xff1a; 在我们的日常开发中&#xff0c;关系型数据库和非关系型数据库的使用已经是一个成熟的软件产品开发过程中必不可却的存储数据的工具了。那么用了这么久的关系数据库和非关系型数据库你们都知道他们之间的区别了吗&#xff1f;下面我们来详细的介绍一下。 关系…...

7.Cloud-GateWay

0.概述 https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/ 1.入门配置 1.1 POM <!--新增gateway--> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-sta…...

【Linux】Framebuffer 应用

# 前置知识 LCD 操作原理 在 Linux 系统中通过 Framebuffer 驱动程序来控制 LCD。 Frame 是帧的意思&#xff0c; buffer 是缓冲的意思&#xff0c;这意味着 Framebuffer 就是一块内存&#xff0c;里面保存着一帧图像。 Framebuffer 中保存着一帧图像的每一个像素颜色值&…...

markdown绘制流程图相关代码片段记录

有时候会使用typora来绘制一些流程图&#xff0c;进行编码之类的工作&#xff0c;在网络搜集了一些笔记&#xff0c;做个记录&#xff0c;方便日后进行复习&#xff0c;相关的记录如下&#xff1a; 每次作图时&#xff0c;代码以「graph <布局方向>」开头&#xff0c;如…...

云计算基础-计算虚拟化-CPU虚拟化

CPU指令系统 在CPU的工作原理中&#xff0c;CPU有不同的指令集&#xff0c;如下图&#xff0c;CPU有4各指令集&#xff1a;Ring0-3&#xff0c;指令集是在服务器上运行的所有命令&#xff0c;最终都会在CPU上执行&#xff0c;但是CPU并不是说所有的命令都是一视同仁的&#xf…...

MySQL数据库⑪_C/C++连接MySQL_发送请求

目录 1. 下载库文件 2. 使用库 3. 链接MySQL函数 4. C/C链接示例 5. 发送SQL请求 6. 获取查询结果 本篇完。 1. 下载库文件 要使用C/C连接MySQL&#xff0c;需要使用MySQL官网提供的库。 进入MySQL官网选择适合自己平台的mysql connect库&#xff0c;然后点击下载就行…...

选择排序和快速排序(1)

目录 选择排序 基本思想 选择排序的实现 图片实现 代码实现 快速排序 基本思想 快速排序的实现 图片实现 代码实现 选择排序 基本思想 每一次从待排序的数据元素中选出最小&#xff08;最大&#xff09;的元素&#xff0c;存放在序列的起始位置&#xff0c;直到全部…...

得物面试:Redis用哈希槽,而不是一致性哈希,为什么?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; Redis为何用哈希槽而不用一致性哈希&#xff1f; 最近…...

matlab发送串口数据,并进行串口数据头的添加,我们来看下pwm解析后并通过串口输出的效果

uintt16位的话会在上面前面加上00&#xff0c;16位的话一定是两个字节&#xff0c;一共16位的数据 如果是unint8的话就不会&#xff0c; 注意这里给的是13&#xff0c;但是现实的00 0D&#xff0c;这是大小端的问题&#xff0c;在matlanb里设置&#xff0c;我们就默认用这个模式…...

二分、快排、堆排与双指针

二分 int Binary_Search(vector<int> A,int key){int nA.size();int low0,highn-1,mid;while(low<high){mid(lowhigh)/2;if(A[mid]key)return mid;else if(A[mid]>key)highmid-1;elselowmid1; }return -1; }折半插入排序 ——找到第一个 ≥ \ge ≥tem的元素 voi…...

微信小程序步数返还的时间戳为什么返回的全是1970?

微信小程序步数返还的时间戳为什么返回的全是1970&#xff1f; 将返回的时间 乘以 1000 再 new Date() 转化就对了 微信返回的是秒S单位的&#xff0c;我们要转化为毫秒ms单位&#xff0c;才能进行格式化日期。 微信给我们下了个坑&#xff0c; 参考&#xff1a; https://d…...

Python函数——函数介绍

一、引言 在Python编程中&#xff0c;函数是构建高效代码的关键。通过创建可重用的代码块&#xff0c;我们可以使程序更加清晰、易读且易于维护。在本文中&#xff0c;我们将深入了解Python函数的基本概念及其特性。 二、Python函数的基本概念 函数是一段具有特定功能的代码块…...

【Linux系统化学习】文件重定向

目录 文件内核对象 文件描述符的分配规则 重定向 重定向的概念 dup2系统调用 输出重定向 追加重定向 输入重定向 stderr解析 重定向到同一个文件中 分离常规输出和错输出 文件内核对象 上篇文章中我们介绍到了操作系统中的文件&#xff0c;操作系统为了方…...

防火墙工作模式详解

防火墙工作模式是指防火墙在网络中的工作方式和策略。常见的防火墙工作模式包括以下几种&#xff1a; 1. 包过滤工作模式&#xff1a;根据事先确定的规则集合&#xff0c;对进出网络的网络包进行过滤和检查。根据规则&#xff0c;防火墙可以允许或阻止特定的网络流量。 2. 代…...

CCF编程能力等级认证GESP—C++6级—20231209

CCF编程能力等级认证GESP—C6级—20231209 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09;判断题&#xff08;每题 2 分&#xff0c;共 20 分&#xff09;编程题 (每题 25 分&#xff0c;共 50 分)闯关游戏工作沟通 答案及解析单选题判断题编程题1编程题2 单选题…...

ES6 ~ ES11 学习笔记

课程地址 ES6 let let 不能重复声明变量&#xff08;var 可以&#xff09; let a; let b, c, d; let e 100; let f 521, g "atguigu", h [];let 具有块级作用域&#xff0c;内层变量外层无法访问 let 不存在变量提升&#xff08;运行前收集变量和函数&#…...

001 - Hugo, 创建一个网站

001 - Hugo, 创建一个网站安装hugoWindows系统Macos Hugo博客搭建初始化博客主题安装配置博客各个页面开始创作创建 GitHub Page 仓库本地调试和预览发布内容 教程及鸣谢文字教程视频教程 001 - Hugo, 创建一个网站 这篇文章假设你已经&#xff1a; 了解基本的终端命令行知识&…...

前端开发:Vue框架与前端部署

Vue Vue是一套前端框架&#xff0c;免除原生)avaScript中的DOM操作&#xff0c;简化书写。是基于MVVM(Model–View-ViewModel)思想&#xff0c;实现数据的双向绑定&#xff0c;将编程的关注点放在数据上。简单来说&#xff0c;就是数据变化的时候, 页面会自动刷新, 页面变化的时…...

【leetcode】深搜、暴搜、回溯、剪枝(C++)3

深搜、暴搜、回溯、剪枝&#xff08;C&#xff09;3 一、解数独1、题目描述2、代码3、解析 二、单词搜索1、题目描述2、代码3、解析 三、黄金矿工1、题目描述2、代码3、解析 四、不同路径III1、题目描述2、代码3、解析 一、解数独 1、题目描述 leetcode链接 2、代码 class…...

社区养老|社区养老服务系统|基于springboot社区养老服务系统设计与实现(源码+数据库+文档)

社区养老服务系统目录 目录 基于springboot社区养老服务系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员部分功能 &#xff08;1&#xff09; 用户管理 &#xff08;2&#xff09;服务种类管理 &#xff08;3&#xff09;社区服务管理 &#xff08…...

云计算基础-存储虚拟化(深信服aSAN分布式存储)

什么是存储虚拟化 分布式存储是利用虚拟化技术 “池化”集群存储卷内通用X86服务器中的本地硬盘&#xff0c;实现服务器存储资源的统一整合、管理及调度&#xff0c;最终向上层提供NFS、ISCSI存储接口&#xff0c;供虚拟机根据自身的存储需求自由分配使用资源池中的存储空间。…...

数学实验第三版(主编:李继成 赵小艳)课后练习答案(十二)(3)

实验十二&#xff1a;微分方程模型 练习三 1.分别用数值解命令ode23t和ode45 计算示例3中微分方程的数值解,同用命令ode23 算得的数值解以及解析解比较,哪种方法精度较高?你用什么方法比较它们之间的精度? clc;clear; f(x,y)2*yx2; figure(1) [x,y]ode23t(f,[1,2],1); plo…...

CSS Transition:为网页元素增添优雅过渡效果

随着互联网的发展&#xff0c;网页的视觉效果和用户体验变得尤为重要。CSS Transition作为一种能够让网页元素在状态改变时呈现平滑过渡效果的工具&#xff0c;受到了广大前端开发者的青睐。本文将详细介绍CSS Transition的基本概念、使用方法以及常见应用&#xff0c;帮助读者…...

JDK 17 新特性 (一)

既然 Springboot 3.0 强制使用 JDK 17 那就看看 JDK17 有哪些新特性吧 参考链接 介绍一下 新特性的历史渊源 JDK 17是Java Development Kit&#xff08;JDK&#xff09;的一个版本&#xff0c;它是Java编程语言的一种实现。JDK 17于2021年9月14日发布&#xff0c;并作为Java …...

杨中科 ASP.NET DI综合案例

综合案例1 需求说明 1、目的:演示DI的能力; 2、有配置服务、日志服务&#xff0c;然后再开发一个邮件发送器服务。可以通过配置服务来从文件、环境变量、数据库等地方读取配置&#xff0c;可以通过日志服务来将程序运行过程中的日志信息写入文件、控制台、数据库等。 3、说明…...

蓝桥杯嵌入式第12届真题(完成) STM32G431

蓝桥杯嵌入式第12届真题(完成) STM32G431 题目 程序 main.c /* USER CODE BEGIN Header */ /********************************************************************************* file : main.c* brief : Main program body**************************…...