正则表达式 先行断言 \S {} 示例

news2024/12/25 23:35:28

目录

  • 数据准备
  • 一. 先行断言
    • 1.1 正向先行断言
    • 1.2 负向先行断言
  • 二. 配合 {} 和 \S 使用
    • 2.1 匹配一个任意非空白字符
    • 2.2 匹配任意多个非空白字符
    • 2.3 匹配3个非空白字符
    • 2.4 匹配至少3个非空白字符
    • 2.5 匹配0~3个非空白字符


数据准备

⏹文件1

0561-10 AAA 123 dfg  @@345 sss
0561-20 BBB 456 ssa
0561-30 CCC 123 sss ~1~2
0561-40 CCC 432 cvf
0561-50 DDD 123 sss
0561-60 EEE 111 sss 123
0561-60 FFF 111 123 YYY

⏹文件2

foo1bar foo2bar foo2wwebar foo3baz
foo~bar foo@Dwbar foo3baz

一. 先行断言

在正则表达式中,先行断言是一种特殊的断言,用来匹配某个位置前后的特定模式,但不消耗字符。
先行断言分为

  • 正向先行断言(positive lookahead)
  • 负向先行断言(negative lookahead)

1.1 正向先行断言

正向先行断言用于断言在某个位置之后必须能匹配一个特定的模式。语法为:(?=pattern)

\s123.*(?=sss)

  • 任意空白字符后面跟着 123,然后跟着任意数量的字符,直到遇到后面紧跟着 sss 的位置
  • 该行,要有先有 123,再有 sss,且 sss 不参与匹配

在这里插入图片描述

1.2 负向先行断言

负向先行断言用于断言在某个位置之后不能匹配一个特定的模式。语法为:(?!pattern)

^(?=.*123)(?!.*sss).*

  • ^:匹配字符串的开始位置。
  • (?=.*123):正向先行断言,表示在当前位置后面必须至少包含 123 这个子串
  • (?!.*sss):负向先行断言,表示在当前位置后面不能包含 sss 这个子串
  • .*:匹配任意数量(包括零个)的字符。
  • $:匹配字符串的结束位置。

⏹确保字符串中包含至少一个 123,并且不包含 sss。
如果符合这两个条件,那么整个字符串将被匹配。

在这里插入图片描述


二. 配合 {} 和 \S 使用

  • \S:匹配任意非空白字符
  • {}:用来指定前面模式的重复次数的量词
    • {n}:匹配前面的模式恰好 n 次
    • {n,}:匹配前面的模式至少 n 次
    • {n,m}:匹配前面的模式至少 n 次,最多 m 次

2.1 匹配一个任意非空白字符

foo\S(?=bar)

  • foo:字面匹配字符序列 foo
  • \S:匹配任意非空白字符
  • (?=bar):正向先行断言,表示在当前位置之后必须紧跟着字符串 bar

在这里插入图片描述

2.2 匹配任意多个非空白字符

foo\S+(?=bar)

在这里插入图片描述

2.3 匹配3个非空白字符

foo\S{3}(?=bar)

在这里插入图片描述

2.4 匹配至少3个非空白字符

foo\S{3,}(?=bar)

在这里插入图片描述

2.5 匹配0~3个非空白字符

foo\S{0,3}(?=bar)

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2008-2021年各省份高技术产业科研与发展(RD)活动情况数据

R&D(研究与发展)活动是推动国家和公司技术创新和经济增长的关键因素。以下是对各省份高技术产业科研与发展(R&D)活动情况数据的介绍: 数据简介 定义:R&D指在产品开发、工艺设计、生产技术改进…

阿尔泰科技与西安交通大学陕西省某技术重点实验室共谋未来!

近日,阿尔泰科技的电子工程师(熊工)应邀前往西安交通大学陕西省某技术重点实验室,参与课题组项目的测试与调试工作。此次合作不仅成功推动了项目的进展,还为未来的深入合作奠定了坚实基础。 阿尔泰科技作为领先的测控技…

Flink SQL kafka连接器

版本说明 Flink和kafka的版本号有一定的匹配关系,操作成功的版本: Flink1.17.1kafka_2.12-3.3.1 添加kafka连接器依赖 将flink-sql-connector-kafka-1.17.1.jar上传到flink的lib目录下 下载flink-sql-connector-kafka连接器jar包 https://mvnreposi…

AI教你如何系统的学习Python

Python学习计划 第一阶段:Python基础(1-2个月) 目标:掌握Python的基本语法、数据类型、控制结构、函数、模块和包等。 学习Python基本语法:包括变量、数据类型(整数、浮点数、字符串、列表、元组、字典、…

Java求解百钱买百鸡问题(课堂实例2)

目录 💕💕引言💕💕 😍😍点关注编程梦想家(大学生版)-CSDN博客不迷路💕💕 一、问题背景----百鸡百钱_百度百科 (baidu.com) 𝑥𝑦&a…

颍川韩氏始祖,归顺大汉的弓高侯

弓高侯,听起来十分不顺当,像是域外来音似的。本人的名字更另类——颓当,词典中甚至找不到。然而,弓高曾经是河北的一个县名——弓高县,颓当曾经是匈奴的一个城——颓当城,这两个地名已经不存在了&#xff0…

python - 文件 / 永久存储:pickle / 异常处理

一.文件 利用help(open)可以看到open()函数的定义: >>> help(open) Help on built-in function open in module _io:open(file, moder, buffering-1, encodingNone, errorsNone, newlineNone, closefdTrue, openerNone) 默认打开模式是’rt’&#xff0…

spring boot(学习笔记第十二课)

spring boot(学习笔记第十二课) Spring Security内存认证&#xff0c;自定义认证表单 学习内容&#xff1a; Spring Security内存认证自定义认证表单 1. Spring Security内存认证 首先开始最简单的模式&#xff0c;内存认证。 加入spring security的依赖。<dependency>…

edge浏览器详细解析

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 Microsoft Edge ​​​​…

InvalidVersionSpecError: Invalid version spec: =2.7解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

C++ | Leetcode C++题解之第22题完全二叉树的节点个数

题目&#xff1a; 题解&#xff1a; class Solution { public:int countNodes(TreeNode* root) {if (root nullptr) {return 0;}int level 0;TreeNode* node root;while (node->left ! nullptr) {level;node node->left;}int low 1 << level, high (1 <&…

详解Java垃圾回收(GC)机制

一、为什么需要垃圾回收 如果不进行垃圾回收&#xff0c;内存迟早都会被消耗空&#xff0c;因为我们在不断的分配内存空间而不进行回收。除非内存无限大&#xff0c;我们可以任性的分配而不回收&#xff0c;但是事实并非如此。所以&#xff0c;垃圾回收是必须的。 二、哪些内…

计算机的错误计算(二十四)

摘要 计算机的错误计算&#xff08;二十一&#xff09;就案例 展示了“两个不相等数相减&#xff0c;差为0”。本节给出新的计算过程&#xff1a;不停增加计算精度直到出现非0结果。这个过程与结果表明&#xff0c;即使是专业数学软件&#xff0c;对这个问题的处理&#xff0…

JS进阶-作用域

学习目标&#xff1a; 掌握作用域 学习内容&#xff1a; 作用域局部作用域全局作用域作用域链JS垃圾回收机制拓展-JS垃圾回收机制-算法说明闭包变量提升 作用域&#xff1a; 作用域规定了变量能够被访问的"范围"&#xff0c;离开了这个"范围"变量便不能被…

论文1:多模态人类活动识别综述

论文题目&#xff1a;A Review of Multimodal Human Activity Recognition with Special Emphasis on Classification, Applications, Challenges and Future Directions 文献偏旧-2021 1、 专业词汇&#xff1a; Human activity recognition (HAR)-人类活动识别 Wearable …

Open3D 计算点云的马氏距离

目录 一、概述 1.1原理 1.2应用 二、代码实现 三、实现效果 3.1原始点云 3.2计算后点云 一、概述 1.1原理 马氏距离&#xff08;Mahalanobis Distance&#xff09;是一种度量多维数据点与数据分布中心之间距离的方法。与欧几里得距离不同&#xff0c;马氏距离考虑了数据…

树目标、抓过程、要结果

一个好的管理理念不会因为一两个成功案例而发扬&#xff0c;一定是有无数个案例验证了它的价值所在&#xff0c;既然OKR在国外已经取得成功&#xff0c;那么国内依然如此。那么OKR这么成功&#xff0c;它到底好在哪呢&#xff1f; 一、OKR是连接企业战略和落地执行的最佳方式。…

C嘎嘎:类和对象(上)

目录 面向过程和面向对象的初步认识 类的引入 类的定义 类的访问限定符及封装 访问限定符 封装 类的作用域 类的实例化 类对象模型 如何计算类对象大小 结构体内存对齐规则 this指针 this指针的引出 this指针的特性 面向过程和面向对象的初步认识 C语言是面向过程…

CentOS 6.5配置国内在线yum源和制作openssh 9.8p1 rpm包 —— 筑梦之路

CentOS 6.5比较古老的版本了&#xff0c;而还是有一些古老的项目仍然在使用。 环境说明 1. 更换国内在线yum源 CentOS 6 在线可用yum源配置——筑梦之路_centos6可用yum源-CSDN博客 cat > CentOS-163.repo << EOF [base] nameCentOS-$releasever - Base - 163.com …

尚品汇-(十二)

&#xff08;1&#xff09;数据库表结构 根据以上的需求&#xff0c;以此将SKU关联的数据库表结构设计为如下&#xff1a; base_attr_value&#xff1a;前面学的平台属性值表 我们进行关联&#xff0c;可以从分类导向平台&#xff0c;通过平台过滤商品 &#xff08;2&#xf…