模式匹配

简介: 模式匹配

匹配操作符(绑定操作符): =~!~
 =~
检验匹配是否成功:$result= $var =~ /abc/;若在该字符串中找到了该模式,则返回非零值,即true,不匹配则返回false

!~则相反。

模式中的特殊字符

字符 + :一个或多个相同的字符,如:/ab+/在字符串abbc中匹配的将是abb,而不是ab

字符 *? :它们与+类似,区别在于*匹配0或任意个相同字符,?匹配0个或1个该字符。如:/de*f/匹配dfdefdeeeef等;/de?f/匹配dfdef

字符{}:指定所匹配字符的出现次数。如:/de{1,3}f/匹配def,deefdeeef/de{3,}f/匹配不少于3edf之间;/de{0,3}f/匹配不多于3edf之间。

字符 [][^]
[]
意味着匹配一组字符中的一个,如/a[0123456789]c/将匹配a加数字加c的字符串。^表示除其之外的所有字符,如:/d[^deE]f/匹配d加非deE字符加f的字符串。

匹配任意字母或数字

/[0-9]/表示任意数字,[a-z]表示任意小写字母,[A-Z]表示任意大写字母。

任意大小写字母、数字的表示方法为:/[0-9a-zA-Z]/,-表示字符范围。

转义字符\
如果你想把模式中的特殊字符作为普通字符,须在其前加斜线“\”。如:/\*+/\*即表示字符*,而不是上面提到的一个或多个字符的含义。反斜杠表示为/\//

锚模式

 \A

仅匹配串首

 \Z

仅匹配串尾

\b

匹配一个单词边界,也就是指单词和空格间的位置, 'er\b' 可以匹配"never"  中的 'er',但不能匹配 "verb" 中的 'er'

\B

匹配非单词边界, 'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'

转义字符

描述

范围


\d

任意数字

[0-9]


\D

除数字外的任意字符

[^0-9]


\w

任意单词字符

[_0-9a-zA-Z]


\W

任意非单词字符

[^_0-9a-zA-Z]


\s

空白

[ \r\t\n\f]


\S

非空白

[^ \r\t\n\f]







 

匹配:m/<regexp>/m可省略,匹配成功返回真,否则返回假

替换:s/<pattern>/<replacement>/;

翻译:tr/str1/str2/

str1中的第一个字符替换为str2中的第一个字符,把str1中的第二个字符替换为str2中的第二个字符,依此类推;

 

知识点回顾

匹配:m/<regexp>/

替换:s/<pattern>/<replacement>/;

翻译:tr/str1/str2/

匹配操作符=~!~

模式中的特殊字符。

 

相关文章
|
1月前
|
人工智能 自然语言处理 网络协议
2026年阿里云OpenClaw(Clawdbot)部署新手教程 零基础15分钟上手专属AI助手
2026年,AI自动化工具迎来全民普及,OpenClaw凭借“自然语言指令+任务自动化”的核心优势,成为个人与轻量团队搭建专属AI助手的首选。其前身为Clawdbot、Moltbot,历经版本迭代后,统一命名为OpenClaw,功能更完善、适配性更强,无需用户掌握编程技能,即可通过日常口语化指令,完成文档处理、日程管理、跨工具协同等各类重复性工作,被用户称为“私人AI员工”。
376 0
|
BI 索引 Python
python XlsxWriter模块execl文档生成详解(2)
python XlsxWriter模块execl文档生成详解(2)
python XlsxWriter模块execl文档生成详解(2)
|
3月前
|
存储 小程序 前端开发
开源版婚恋社交系统:基于PHP开发,集成实时音视频匹配、IM聊天、邀约组局与红娘管理模块的小程序!
系统基于uni-app+PHP全开源架构,支持1V1音视频、IM聊天、兴趣组局、红娘匹配等功能,覆盖都市社交、线上相亲、线下活动等多元场景,助力高效交友与婚恋服务,跨端兼容,灵活二开。
326 1
|
3月前
|
人工智能 自然语言处理 安全
中小微企业 AI 客服系统建设费用:高性价比选择指南
瓴羊Quick Service是阿里云旗下智能客服产品,专为中小微企业设计,支持全渠道接入、7×24小时AI应答,准确率达93%,年费仅1万元起,助力企业低成本实现高效服务升级。
|
10月前
|
人工智能 供应链 Kubernetes
[WMCTF2020]easy_re 题解
[WMCTF2020]easy_re 题解
435 0
|
5月前
|
监控 安全 数据挖掘
安徽京准分享:安防监控系统精准NTP时钟同步应用方案
安防监控系统精准NTP时钟同步方案,通过北斗/GPS双模授时,局域网部署NTP服务器,实现毫秒级时间统一,提升事件追溯、数据联动与应急响应效率,筑牢系统协同与证据有效性基石。(238字)
|
算法 测试技术
EvalPlanner:基于“计划-执行”双阶段的大语言模型评估框架
EvalPlanner是一种创新的大语言模型(LLM)评估算法,采用计划-执行双阶段范式,生成无约束的评估计划并执行,从而提升评估的系统性和可靠性。该系统包含评估计划、计划执行模块和最终判决三个核心组件,通过自训练循环优化计划和执行过程。EvalPlanner在多个基准测试中表现出色,特别是在数据效率和泛化能力方面,为构建高效、稳健的LLM评估模型提供了新方向。
545 13
EvalPlanner:基于“计划-执行”双阶段的大语言模型评估框架
|
8月前
|
JSON 监控 API
虾皮商品 API,开发者详解与使用指南
虾皮商品API支持开发者获取商品详情及列表,适用于电商导购、价格监控、库存管理等场景。提供商品信息查询、店铺管理、数据分析等功能,助力商家优化运营策略。
|
7月前
|
Ubuntu 安全 Unix
Linux和Ubuntu有什么区别
综上所述,Linux和Ubuntu之间存在明显的区别。Linux是一种操作系统内核,而Ubuntu是基于Linux内核的发行版本,具有更好的易用性、社区支持和软件仓库。用户可以根据自己的需求选择不同的Linux发行版本,如果需要一个稳定、易于使用的桌面环境,Ubuntu是一个不错的选择。如果需要更加灵活和定制性强的系统,其他Linux发行版本可能更加适合。

热门文章

最新文章