详解Linux--shell脚本之正则表达式

发布时间 - 2026-01-10 22:31:55    点击率:

一、正则表达式的概念及特点:

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。规定一些特殊语法表示字符类、数量限定符和位置关系,然后用这些特殊语法和普通字符一起表示一个模式,这就是正则表达式(Regular Expression)。

给定一个正则表达式和另一个字符串,我们可以达到如下的目的:  

1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);

 2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。

正则表达式的特点:

1. 灵活性、逻辑性和功能性非常的强;

2. 可以迅速地用极简单的方式达到字符串的复杂控制。

3. 对于刚接触的人来说,比较晦涩难懂。

由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。

二、正则表达式有三部分组成:

例如找出多有符合xxxxx@xxxx.xxx模式的字符串(也就是mail地址),要求x可以是字母、数字、下划线、小数点、短划线,email地址的每一部分可以有一个或多个x字符,例如abc@ed.com、1_2@789-6.54等,当然,符合这个模式的并不一定是合法的mail地址,但至少可以做一次初步的筛选,筛选掉类似于a.b、c@d等不符合的字符串。再比如说,找出所有符合yyy.yyy.yyy.yyy模式的字符串(IP地址),要求y是0~9的数字,IP地址的每一部分可以有1~3个y字符。

1、字符类

字符类(Character Class):上例中的x和y,他们在模式中表示一个字符,但是取值范围是一类字符中的任意一个。

eg:

 

2、数量限定符

数量限定符(Quantifier): 邮件地址的每一部分可以有一个或多个x字符,IP地址的每一部 分可以有1-3个y字符 

eg:

3、位置限定符

位置限定符(Anchor):描述各种字符类以及普通字符之间的位置关系,例如邮件地址分三部分,用普通字符@和.隔 开,IP地址分四部分,用.隔开,每一部分都可以用字符类和数量限定符 描述。为了表示位置关系,需要位置限定符的概念,将在下面介绍。

eg:

4、特殊字符

eg: 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# shell脚本正则表达式  # shell  # 正则表达式匹配  # 正则表达式  # shell 正则表达式详细整理  # Shell if中的正则表达式使用详解  # Shell脚本中通过正则表达式匹配IP地址  # Shell正则表达式验证IP地址  # linux shell 路径截取正则表达式  # PowerShell中正则表达式使用例子  # Shell正则表达式学习笔记  # Linux Shell脚本的编程之正则表达式  # shell高级学习之正则表达式  # shell编程入门之正则表达式实例代码  # 编辑器  # 多个  # 有一个  # 的人  # 都有  # 将在  # 这就是  # 可以用  # 下划线  # 我们可以  # 可以通过  # 可以使用  # 不符合  # 它在  # 类似于  # 大到  # 大家多多  # 小到  # 是否符合 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 活动邀请函制作网站有哪些,活动邀请函文案?  WordPress 子目录安装中正确处理脚本路径的完整指南  网站制作价目表怎么做,珍爱网婚介费用多少?  香港服务器WordPress建站指南:SEO优化与高效部署策略  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  如何快速重置建站主机并恢复默认配置?  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  独立制作一个网站多少钱,建立网站需要花多少钱?  企业网站制作这些问题要关注  Laravel如何实现事件和监听器?(Event & Listener实战)  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  如何在万网自助建站平台快速创建网站?  Android 常见的图片加载框架详细介绍  iOS验证手机号的正则表达式  如何快速选择适合个人网站的云服务器配置?  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  Laravel如何升级到最新版本?(升级指南和步骤)  浅谈redis在项目中的应用  高端企业智能建站程序:SEO优化与响应式模板定制开发  如何正确选择百度移动适配建站域名?  如何快速生成ASP一键建站模板并优化安全性?  如何构建满足综合性能需求的优质建站方案?  zabbix利用python脚本发送报警邮件的方法  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  如何获取上海专业网站定制建站电话?  Laravel如何为API生成Swagger或OpenAPI文档  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  Laravel如何实现本地化和多语言支持?(i18n教程)  jQuery中的100个技巧汇总  如何在宝塔面板中修改默认建站目录?  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  🚀拖拽式CMS建站能否实现高效与个性化并存?  如何在自有机房高效搭建专业网站?  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  Python自动化办公教程_ExcelWordPDF批量处理案例  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  Laravel如何实现用户注册和登录?(Auth脚手架指南)  如何在香港免费服务器上快速搭建网站?  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  Java垃圾回收器的方法和原理总结  php 三元运算符实例详细介绍  EditPlus中的正则表达式实战(5)  海南网站制作公司有哪些,海口网是哪家的?  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  如何用免费手机建站系统零基础打造专业网站?