正则表达式——匹配单个字符
匹配单个字符1、匹配纯文本1.1、有多个匹配结果1.2、字母的大小写问题2、匹配任意字符3、匹配特殊字符1、匹配纯文本Ben是一个正则表达式。因为本身是纯文本所以看起来可能不像是一个正则表达式但它的确是。正则表达式可以包含纯文本甚至可以只包含纯文本​。当然像这样使用正则表达式是一种浪费但把它作为我们学习正则表达式的起点还是很不错的。我们来看一个例子文本Hello, my name is Ben. Please visit my website at http://www.forta.com/.正则表达式Ben结果我们再来看一个例子它使用了与刚才相同的原始文本和另外一个正则表达式文本Hello, my name is Ben. Please visit my website at http://www.forta.com/.正则表达式:my结果my也是静态文本它在原始文本里找到了两个匹配结果。1.1、有多个匹配结果绝大多数正则表达式引擎的默认行为是只返回第1个匹配结果。具体到上面那个例子原始文本里的第1个my通常是一个但第2个往往不是。怎样才能把两个或更多个匹配结果都找出来呢绝大多数正则表达式的实现都提供了一种能够把所有的匹配结果全部找出来的机制通常返回为一个数组或是其他的专用格式​。比如说在JavaScript里可选的g意思是“global”​全局标志将返回一个包含着所有匹配的结果数组。1.2、字母的大小写问题正则表达式是区分字母大小写的所以Ben不匹配ben。不过绝大多数正则表达的式实现也支持不区分字母大小写的匹配操作。比如说JavaScript用户可以用i标志来强制执行一次不区分字母大小写的搜索。2、匹配任意字符前面见到的正则表达式都是些静态的纯文本它们根本体现不出正则表达式的威力。下面我们一起来看看如何使用正则表达式去匹配不可预知的字符。在正则表达式里特殊字符或字符集合用来给出要搜索的东西。.字符英文句号可以匹配任何一个单个的字符。提示 如果你曾经使用过DOS的文件搜索功能你将发现正则表达式里的.字符相当于DOS的字符。SQL用户将注意到正则表达式里的.字符相当于SQL中的_下划线字符。于是用正则表达式c.t进行的搜索将匹配到cat和cot还能匹配到一些毫无意义的单词​。文本sales1.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls na1.xls na2.xl2 sa1.xls正则表达式sales.结果正则表达式sales将把由字符串sales和另外一个字符构成的文件名查找出来。9个文件里有3个与这个模式pattern相匹配。正则表达式可以用来匹配包含着字符串内容的模式。匹配的并不总是整个字符串而是与某个模式相匹配的字符——即使它们只是整个字符串的一部分。在上面的例子里我们使用的正则表达式并不能匹配整个文件名它只匹配了文件名的一部分。如果你需要把某个正则表达式的匹配结果传递到其他代码或应用程序里做进一步处理就必须记住这一细节差异。.字符可以匹配任何单个的字符、字母、数字甚至是字符本身。文本sales.xls sales1.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls na1.xls na2.xl2 sa1.xls正则表达式sales.结果这个例子比上一个多了一个sales.xls文件。因为能够匹配任何一个单个的字符所以这个文件也与模式sales相匹配。在同一个正则表达式里允许使用多个字符它们既可以连续出现一个接着一个——..将匹配任意两个字符​也可以间隔着出现在模式的不同位置。我们再来看一个使用了相同原始文本的例子把以na表示北美或sa表示南美开头的文件不管它们后面跟着一个什么数字找出来。文本sales1.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls na1.xls na2.xl2 sa1.xls正则表达式.a.结果正则表达式a把na1、na2和sa1找了出来但它同时还找到了4个预料之外的匹配结果。为什么会这样因为我们使用的模式将与第2个字符是a的任意3个字符相匹配。我们真正需要的是后面再紧跟着一个英文句号的.a.的模式。我们再来试一次正则表达式.a..结果.a..并不比.a.好多少新增加的.将匹配任何一个多出来的字符不管它是什么​。既然.是一个能够与任何一个单个字符相匹配的特殊字符我们怎样才能搜索.本身呢3、匹配特殊字符.字符在正则表达式里有着特殊的含义。如果模式里需要一个就要想办法来告诉正则表达式你需要的是.字符本身而不是它在正则表达式里的特殊含义。为此你必须在.的前面加上一个\反斜杠字符来对它进行转义。\是一个元字符metacharacter表示“这个字符有特殊含义而不是字符本身含义”​​。我们再来验证一次刚才的例子这次我们使用了\对.进行转义文本sales1.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls na1.xls na2.xls sa1.xls正则表达式.a.\.xls结果.a.\.xls解决了问题。第1个.匹配n在前两个匹配结果里或s在第3个匹配结果里​第2个.匹配1在第1个和第3个匹配结果里或2在第2个匹配结果里​。接下来\.匹配文件名与扩展名之间的分隔符.本身最后的xls匹配它本身。​事实上即使没有最后面的xls这次搜索的结果也会与我们预想的一样加上xls可以避免匹配到诸如sa3.doc之类的文件名。​在正则表达式里\字符永远出现在一个有着特殊含义的字符序列的开头这个序列可以由一个或多个字符构成。刚才看到的是\.序列在后面还会看到更多使用了\字符的例子。如果需要搜索\本身就必须对\字符进行转义相应的转义序列是两个连续的反斜杠字符\\。我们刚才讲过.可以匹配任何一个字符这一说法并非绝对准确。在绝大多数的正则表达式实现里.只能匹配除换行符以外的任何单个字符。

相关新闻

195、TinyML实战项目:智能水产养殖与监测

195、TinyML实战项目:智能水产养殖与监测

TinyML实战项目:智能水产养殖与监测 从一次鱼塘溶氧量报警误触发说起 凌晨三点,手机突然狂震。客户鱼塘的溶氧量监测系统报警——溶氧量低于2mg/L,紧急增氧指令已下发。我揉着眼睛打开后台,数据曲线显示溶氧量在凌晨两点五十分从5.8mg/L断崖式跌到1.9mg/L。但直觉告诉我不…

2026/8/5 1:09:28 阅读更多 →
SMAPI终极指南:5分钟快速上手星露谷物语模组加载器

SMAPI终极指南:5分钟快速上手星露谷物语模组加载器

SMAPI终极指南:5分钟快速上手星露谷物语模组加载器 【免费下载链接】SMAPI The modding API for Stardew Valley. 项目地址: https://gitcode.com/gh_mirrors/smap/SMAPI SMAPI(Stardew Valley Modding API)是星露谷物语官方认可的模组…

2026/8/5 1:09:28 阅读更多 →
重庆大学LaTeX毕业论文模板终极指南:3步告别格式烦恼

重庆大学LaTeX毕业论文模板终极指南:3步告别格式烦恼

重庆大学LaTeX毕业论文模板终极指南:3步告别格式烦恼 【免费下载链接】CQUThesis :pencil: 重庆大学毕业论文LaTeX模板---LaTeX Thesis Template for Chongqing University 项目地址: https://gitcode.com/gh_mirrors/cq/CQUThesis 还在为毕业论文格式调整而…

2026/8/5 1:09:28 阅读更多 →

最新新闻

5分钟掌握d3dxSkinManage:解决游戏MOD管理三大痛点的终极方案

5分钟掌握d3dxSkinManage:解决游戏MOD管理三大痛点的终极方案

5分钟掌握d3dxSkinManage:解决游戏MOD管理三大痛点的终极方案 【免费下载链接】d3dxSkinManage 3dmigoto skin mods manage tool 项目地址: https://gitcode.com/gh_mirrors/d3/d3dxSkinManage 你是否曾因MOD管理而头疼?安装新皮肤后游戏贴图变成…

2026/8/5 1:54:52 阅读更多 →
Unity3D点击事件深度解析:IPointerClickHandler与EventTrigger实战对比

Unity3D点击事件深度解析:IPointerClickHandler与EventTrigger实战对比

1. 项目概述:为什么3D点击事件是个“坑”?在Unity3D里给一个3D物体加上点击交互,听起来就像给按钮加个OnClick一样简单,对吧?很多新手,甚至一些有经验的开发者,都曾在这个看似基础的功能上栽过跟…

2026/8/5 1:54:52 阅读更多 →
RISC-V MCU工程创建全攻略:从工具链到CMake实战

RISC-V MCU工程创建全攻略:从工具链到CMake实战

1. 项目概述:从零搭建你的第一个RISC-V MCU工程搞嵌入式开发,尤其是从ARM Cortex-M这类主流架构转向RISC-V,很多人第一步就卡在了工程创建上。手里拿着一块RISC-V内核的开发板,看着官方给的SDK包,里面一堆文件夹和文件…

2026/8/5 1:54:51 阅读更多 →
Dev-C++与EasyX图形库:5步实现游戏按钮交互与防闪烁技巧

Dev-C++与EasyX图形库:5步实现游戏按钮交互与防闪烁技巧

1. 项目概述:为什么是Dev-C与EasyX?如果你是一位C/C的初学者,或者是一位对图形编程和游戏开发感兴趣但又被Visual Studio的庞大和复杂劝退的开发者,那么“Dev-C搭配EasyX”这个组合,很可能就是你一直在寻找的“轻量级神…

2026/8/5 1:54:51 阅读更多 →
C++ IO流深度解析:从缓冲区机制到性能调优实战

C++ IO流深度解析:从缓冲区机制到性能调优实战

1. 项目概述&#xff1a;为什么我们还在聊C的IO流&#xff1f;如果你写过C&#xff0c;哪怕只是“Hello, World!”&#xff0c;你就已经和IO流打过交道了。std::cout << “Hello, World!” << std::endl;这行代码几乎是所有C程序员的起点。但很多时候&#xff0c;我…

2026/8/5 1:54:51 阅读更多 →
自动化测试进阶:数据驱动与关键字驱动模型实战解析

自动化测试进阶:数据驱动与关键字驱动模型实战解析

1. 项目概述&#xff1a;从“脚本小子”到“架构师”的思维跃迁干了这么多年自动化测试&#xff0c;我见过太多团队在初期激情满满&#xff0c;投入大量人力编写了成百上千个测试脚本&#xff0c;结果没过半年就陷入维护地狱。脚本之间耦合严重&#xff0c;业务逻辑一变&#x…

2026/8/5 1:53:51 阅读更多 →

日新闻

Java缓存框架:JetCache

Java缓存框架:JetCache

TOC 一、简介 JetCache 是一个 Java 缓存抽象框架&#xff0c;为不同的缓存解决方案提供了统一的使用方式。 它提供的注解比 Spring Cache 更加强大。 JetCache 的注解支持原生 TTL、两级缓存以及在分布式环境中的自动刷新功能&#xff0c;同时你也可以通过代码直接操作 Cach…

2026/8/5 0:00:43 阅读更多 →
AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

需求&#xff1a;通孔焊盘 十字花&#xff1b;过孔 Via 实心直连&#xff1b;贴片焊盘按需设置 AD 测试版本AD24 很多工程师踩坑&#xff1a;全部统一十字&#xff0c;导致接地过孔阻抗高、大电流发热&#xff01; 一、快捷键打开规则 PCB 界面按下&#xff1a;D R 展开…

2026/8/5 0:00:43 阅读更多 →
AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;AI生成素描效果 AI生成素描效果是计算机视觉与风格迁移技术融合的典型应用&#xff0c;其核心在于将彩色照片或RGB图像转换为具有手绘质感、明暗对比强烈、边缘清晰的单色素描图像。该过程通常依赖于深度学习模…

2026/8/5 0:00:43 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流&#xff1a;一个核心问题的诞生想象一下&#xff0c;你是一个城市供水系统的总工程师。你的城市有多个水源&#xff08;水库&#xff09;&#xff0c;需要通过一个复杂的地下管道网络&#xff0c;将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起&#xff1a;为什么我们需要互相关几年前&#xff0c;我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号&#xff0c;理论上它们接收到的声音波形应该非常相似&#xff0c;只是由于麦克风位置不同&#xff…

2026/8/4 5:26:40 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →