【Linux】shell脚本—正则表达式

news2024/11/25 3:03:17

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、正则表达式概述
  • 二、基本的正则表达式
  • 三、操作演示


一、正则表达式概述

  • 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

正则表达式的特点
①.灵活性、逻辑性和功能性非常强;
②.可以迅速地用极简单的方式达到字符串的复杂控制。
③.对于刚接触的人来说,比较晦涩难懂。

正则表达式的组成:
由普通字符与元字符组成
普通字符 :包括大小写字母、数字、标点符号及一些其他符号。
字符 :是指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符在目标对象中的出现模式。

正则表达式和通配符的区别:
通配符:在Linux中,一般配合find命令用于对文件目录,文件名的查找
正则表达式:匹配文件内容,用于精确筛选信息,可以配合grep,egrep,awk,sed命令进行搭配使用,查找时,也比通配符更加精确

二、基本的正则表达式

元字符说明
\转义字符,用于取消特殊符号的含义
^匹配字符串开始的位置
$匹配字符串结束的位置
.匹配除\n之外的任意的一个字符
*匹配前面子表达式0次或者多次
[list]匹配list列表中的一个字符
[^list]匹配任意非list列表中的一个字符
{n}匹配前面的子表达式n次
{n,}匹配前面的子表达式不少于n次
{n,m}匹配前面的子表达式n到m次
\w匹配包括下划线的任何单词字符
\W匹配任何非单词字符
\d匹配一个数字字符
\D匹配一个非数字字符
\s空白符
\S非空白符
+匹配前面子表达式1次以上
?匹配前面子表达式0次或者1次
()将括号中的字符串作为一个整体
以或的方式匹配字符串

三、操作演示

示例一:

匹配025开头的区号
区号与后面的号码以"-"或者 空格 或者 为空
电话号码要以 5 或者 8 开头的八位数

egrep "^(025)[- ]?[58][0-9]{7}$" t

在这里插入图片描述

示例二:

用户名@子域名.[二级域名].顶级域
要求:
1.用户名@:长度要求在6-18位,任意大小写英文,任意数字,除了@符号和空格以外的其他任意符号字符,开头只能是_或者字母
2.子域名:[二级域名]:长度任意,符号只能包含-_.
3.顶级域名:长度在2-5,任意大小写英文

egrep "^[a-zA-Z][^@ ]{5,17}@[0-9a-zA-Z\-\._]+\.[a-zA-Z]{2,5}$" 2

在这里插入图片描述

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

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

相关文章

WIN11+CLion+CMake+MINGW+OPENCV编译需注意问题

安装编译教程可参考以下链接: CLion OpenCV cmake,源码编译及使用_clion编译opencv_拜阳的博客-CSDN博客 使用CLion开发openCV——环境搭建全记录_-Willing-的博客-CSDN博客 此文主要是记录自己在编译过程中遇到的问题和解决方法 1、版本问题 C…

Windows 10 主机上的 VMware Workstation 和设备/凭据防护不兼容“错误

Windows 10 主机上的 VMware Workstation 和设备/凭据防护不兼容“错误 VMware Workstation 和 Device/Credential Guard 不兼容。VMware 工作站可以在禁用设备/凭据防护后运行。 排查错误的过程: 要解决错误,请按照以下步骤操作: 如果您…

LDR6020 【USB_C显示器方案】台式显示器方案介绍

首先介绍一下什么是Type-c接口? 现在显示器上常见的有这几种接口:HDMI、DP、USB-A、USB-C(USB Type-c接口)、3.5mm和电源接口,像之前流行的VGA接口和DVI接口,基本上在新显示器上,尤其是中高端显…

什么是频谱型温振变送器(附常见振动故障特征)

在机械振动方面,振动分析是一项十分重要的技术。这项技术是预测维修程序中的基础,是机器状态的指示器,为了避免机械设备异常振动所带来的损失,对工业机械设备做振动分析是非常有必要的! 频谱型温振变送器是一款选用了M…

阿里高级工程师对C语言预处理指令的理解

目录 预处理器指令列表 预处理器指令的流程 四种主要类型的预处理器指令 结论 我们可以将预处理器视为一个编译过程,该过程在开发人员运行程序时运行。它是使用 c/c 语言执行程序的预处理。若要初始化预处理器命令的进程,必须使用哈希符号 &#xf…

【Devops运维】Docker搭建jenkins自动化编译hadoop/spark/flink/hive/kyuubi/trino大数据组件

Docker搭建jenkins DevOps概念Docker部署Jenkins制作Jenkins镜像Dockerfile及所依赖的脚本build镜像 利用docker-compose部署jenkins 配置Jenkins管理员密码插件安装系统配置全局工具配置MAVEN 配置JDK 配置GIT 配置MAVEN 配置 Jenkins Maven Git 自动化编译找到token生成界面…

ChatGPT:使用OpenAI创建自己的AI网站,使用 flask web框架快速搭建网站主体

使用OpenAI创建自己的AI网站 如果你还是一个OpenAI的小白,有OpenAI的账号,但想调用OpenAI的API搞一些有意思的事,那么这一系列的教程将仔细的为你讲解如何使用OpenAI的API制作属于自己的AI网站。 使用 flask web框架快速搭建网站主体 之前…

C++:布隆过滤器和哈希切分

目录 一. 什么是布隆过滤器 二. 布隆过滤器的实现 2.1 数据插入函数set 2.2 判断数据是否存在函数test 2.3 布隆过滤器数据的删除 三. 哈希切分 一. 什么是布隆过滤器 在我之前的博客C:使用位图处理海量数据_【Shine】光芒的博客-CSDN博客中,介绍了…

【LinuxShell】linux防火墙之firewalld防火墙

文章目录 前言一、firewalld概述1. 概念2. firewalld和iptables的关系 二、firewalld网络区域1. firewalld区域的概念2. firewalld预定义区域3. firewalld数据包的处理3.1 firewalld数据处理流程3.2 firewalld检查数据包的源地址的规则3.3 总结 三、firewalld防火墙的配置方法1…

“GPT+医疗健康”:给予医疗领域新机遇

现如今,GPT十分火热。随着人们对健康医疗的关注越来越热切,GPT已逐渐成为健康医疗领域的重要角色之一。GPT可以用于许多医疗语境中,如医学咨询、病症诊断、健康建议、在线问诊、患者教育、健康数据跟踪等。 GPT是一种基于深度学习的自然语言处…

结构体-C语言

🤩本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 🥰内容专栏:这里是《C知识系统分享》专栏,笔者用重金(时间和精力)打造,基础知识一网打尽&#xff0c…

【Python办公自动化】python实现将图片插入到word中指定位置并将word转换为图片

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、…

垃圾站养殖场除臭杀菌解决方案

养殖场和垃圾站都会产生大量的有机废气和垃圾,这些废气和垃圾会产生难闻的臭味,影响周围环境和居民健康。这些地方又是病菌和细菌的滋生地,这些细菌和病菌会对人类和动物的健康造成威胁。除臭杀菌系统可以杀灭这些细菌和病菌,也可…

换个思维方式,你离网工天花板会更近一点

大家好,我是许公子。 收到老杨的邀请,我正式加入网络工程师俱乐部了,未来会给你分享更多网工硬核内容。 和老杨聊天的过程中,我想起了在刚入社会一两年,我去参加了一个高中同学聚餐。 里面有自主创业的,…

软件测试被00后整顿职场了?

00后带来的压力 公司一位工作3年的老油条工资还没有刚来的00后高,她心中不平,对这件事情有不小的怨气,她觉得自己来公司三年了,三年内迟到次数都不超过5次,每天勤勤恳恳,要加班的时候也愿意加班&#xff0…

Python竖版大屏 | 用pyecharts开发可视化的奇妙探索

你好!我是马哥python说,一枚10年程序猿👨🏻‍💻,正在试错用pyecharts开发可视化大屏的非常规排版。 以下,我用8种ThemeType展示的同一个可视化数据大屏。 1、SHINE主题 2、LIGHT主题 3、MACARO…

手撕代码——任意奇数分频

手撕代码——任意奇数分频 一、奇数分频器原理与设计 在上文《手撕代码——任意偶数分频》中,我们编写任意偶数分频的Verilog代码,对时钟进行偶数分频,只需要用到时钟的上升沿或者下降沿即可,而要进行N倍奇数分频,需要…

修改Allure报告窗口标题,Overview的标题文案,环境配置,左上角LOGO

前言 如下图所示: 一、修改Allure报告窗口标题 Allure-html测试报告的窗口标题保存在:allure-html目录下的index.html文件 写个 set_windows_title 方法,并在 run.py 的执行文件去调用即可修改( 在html报告生成后&#xff09…

研报精选230522

目录 【行业230522东亚前海证券】新能源行业深度报告:政策东风与海外需求共振,充电桩迎新一轮增长周期 【行业230522西南证券】人工智能专题研究:AIGC投资框架 【行业230522国信证券】传媒互联网行业周报:OpenAI推出移动版及网页端…

文献笔记——A brief introduction to distributed systems(分布式系统)

本文主要讨论了分布式系统。作者提供了关于分布式系统的概述,是一份很好的新手教程。 Fig.1 大纲 在论文的第一部分,作者简要回顾了计算机的演变,指出了分布式系统的两个技术基础:性能强大的微处理器的发展和高速计算机网络的发明…