shell脚本----正则表达式

news2024/10/6 1:43:05

文章目录

  • 一、什么是正则表达式
  • 二、正则表达式的使用

一、什么是正则表达式

正则表达式是由普通字符与元字符组成:

  • 普通字符 包括大小写字母、数字、标点符号及一些其他符号。

  • 元字符 是指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符或表达式)在目标对象中的出现模式。

二、正则表达式的使用

适合awk,sed,grep,egrep等文本工具使用

常用选项:

选项作用
\转义字符,用于取消特殊符号的含义,如:\!、\n、\$
^匹配字符串开始的位置,如:^a、^the、^#、^[a-z]
$匹配字符串结束的位置,如:word$、^$匹配空行
.匹配除\n之外的任意的一个字符,如:go.d、g…d
*匹配前面子表达式0次或多次,如:goo*d、go.*d
[list]匹配list列表中的一个字符(列表中只要有一个符合即可)
[^list]匹配任意非list列表中的一个字符
\ {n\ }匹配前面的子表达式n次
\ {n,\ }匹配前面的子表达式不少于n次
\ {n,m\ }匹配前面的子表达式n到m次(m必须大于n,不然会报错)

注意:egrep、 awk使用{n}、{n,}、{n, m}匹配时 “{ }” 前不用加" \ "

选项作用
\n拥有换行的作用
\t转化为制表符(能让输出结果呈现表格的格式)
\w(小写)匹配包括下划线的任何单词字符
\W(大写)匹配任何非单词字符。等通于"[^A-Za-z0-9_]"
\r转换后是回车符
\d匹配一个数字字符
\D匹配一个非数字字符。等价于[^0-9]
\s(小写)空白符
\S(大写)非空白符

扩展正则表达式元字符:(支持的工具:egrep、awk)
+:匹配前面子表达式1次以上,如:go+d,将至少匹配一个o,god、good、goood
?:匹配前面子表达式0次或1次,如:go?d将匹配gd、god
():将括号中的字符串作为一个整体,如:g(oo)+d,将匹配oo整体1次以上,如good、goood等
|:以或的方式匹配字符串,如:g(oo|al)d,将匹配good或gald

示例一:
区号025开头,号码与区号间可以是空格、-、没有,号码必须是5或者8开头的八位数

在这里插入图片描述

示例二:
正则表达式匹配E-mail地址

在这里插入图片描述

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

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

相关文章

科技助农 智慧养鸡2D组态可视化管理云平台

前言 养殖业是农业的一个重要分支,主要包括家禽养殖、畜牧养殖和水产养殖三个细分产业。养殖业发展至今,已成为与种植业并列的农业两大支柱产业之一。 建设背景 我国作为养殖业大国,各类型的散养农户、大中小型养殖场数量极多,…

事务的隔离级别有哪几种,解决了什么问题?

事务的隔离级别主要是为了保证多事务环境下的并发安全性,共有四大隔离级别,如下: 如果不考虑隔离性,在SQL操作中,多个事务竞争可能会产生三种不同的现象,分别是脏读、幻读、不可重复读。 首先来看脏读&am…

slf4j log4j log4j-over-slf4j self-log4j12

一、Java日志体系概述 图1-1 Java日志体系概况 日志门面接口(SLF4J、JCL)一系列绑定和桥接具体的日志实现 先来两个例子: Spring项目中通过Commons Logging直接使用log4j 图1-2 通过Commons Logging使用log4j本例中由于spring-core中原生依…

IS200TREGH1BEC直流并励电动机的启动

​ IS200TREGH1BEC​​​​​​直流并励电动机的启动 要启动机器,电机在零速时产生的扭矩必须超过负载所需的扭矩。然后 TM − TL 将为正,d!/dt 也为正,机器加速。 通常,直流电机的电枢电阻在满载电流时会导致 1% 到 5% 的下降。…

制作RPM包createrepo

每次源码安装很费事,所以直接做一个RPM包 安装 rpm-build 软件包 [rootproxy ~]# yum -y install rpm-build 生成 rpmbuild 目录结构 或许只有在家目录下生成一个不存在的目录才会生成 rpmbuild目录和子目录 若想在自己创建的目录下生成只有自己手动去创建&#…

基于.NET实现的家电维修保养信息系统[含文档+PPT+源码等]精品

1 项目简介 Hi,各位同学好呀,这里是卡莫! 基于.NET实现的家电维修保养信息系统[含文档PPT源码等]精品 该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等 软件开发环境及开发工具: 开发软件:…

怎么查看特定的端口是否被屏蔽了

文章目录 怎么查看特定的端口是否被屏蔽了前言无法访问原因查看命令所用环境开启windows的telnet功能查看特定端口是否被墙WSL演示windows终端演示总结 怎么查看特定的端口是否被屏蔽了 前言 如果你不知道自己的服务器的某个端口是否被屏蔽了,通过阅读本文&#x…

如何利用EAP系统优化锂电生产线的自动化流程?

锂电行业是新兴的能源产业,其快速发展和规模化生产对设备自动化系统的需求也越来越高。在生产过程中,设备自动化系统EAP(Equipment Automation Program)可以实现对生产线上的所有机台进行实时管控,从而实现设备运行的自…

“AIGC早报”已内测2个月了,来看看她长什么样子

今天,是咱们社群“AI产品经理大本营”六周年活动的第二天,正式给大家介绍下,已内测2个月的重要会员权益——AIGC日报。 会分三个部分:效果口碑、我们如何做到的、今日的AIGC早报展示‍‍‍‍‍‍‍‍ ps,文末会发福利星…

将群晖NAS加入域控,来点企业级应用

1. 使用逻辑 将NAS加入域,所有套件和文件可通过域用户来访问。设置NAS中的文件夹权限时,NAS识别出域用户和域群组,并可设置二级文件夹的权限。域管理员会成为NAS的管理员。在域控管理台,可以看到NAS加入到了域控中,在…

dom操作

<script>var htmlEldocument.documentElementvar bodyEldocument.bodyvar headEldocument.headvar doctypedocument.doctypeconsole.log(htmlEl,bodyEl,headEl,doctype)</script> ul>li{$}*5 节点之间的关系(极少用) 空行注释没标签包括的文字也算是一个节点 子…

快速排序加量改进_CUTOFF+三点中值法+三路划分

目录 1引入情境2 形式化描述2-1递归结构2-2 一次划分2-3 C实现 3 在工程中的改进3-1 处理重复元素双向划分三路划分C 实现 3-2 最差情况的改进三点中值法随机选择pivot短序列切回插入排序 4 全部改进技术加持 1引入情境 从低到高排成一队&#xff0c;怎么办&#xff1f; 以大雄…

通过gulp+vite搭建vue3组件库

核心要点 通过 vite 搭建运行环境通过 gulp 执行编译流程通过 vite 编译组件代码编写 组件测试 组件打包 编译组件上传 npm 1、通过 vite 搭建运行环境 这里主要是创建一个可以运行的测试的组件的环境&#xff0c;全局安装vite脚手架&#xff0c;并初始化项目 npm create v…

简单两步创建nVisual建筑场景

nVisual是一款网络基础设施可视化管理软件&#xff0c;通过模型可规划即将建设的机房效果&#xff0c;或者将已有的机房场景复刻至系统中&#xff0c;便于运维管理者清晰的了解机房设备及线缆路由连接关系。 数据初始我们需要将数据中心场景复刻至系统中&#xff0c;建筑场景也…

meta标签复习总结

文章目录 前言一、用在哪里二、用途1.charset2.http-equiv3.name4.content5.keywords 前言 我们往往忽视&#xff0c;却又很重要的一个标签&#xff0c;meta&#xff0c;它在页面细节上面还提供了不小的作用。 一、用在哪里 先来看看它用法 <!DOCTYPE html> <html …

union和位域的混合使用

1、union&#xff08;共用体&#xff09; 1.1、概述 C 语言中&#xff0c;union是一种数据类型&#xff0c;对比于结构体&#xff0c;结构体中的每个成员都占用独立的内存空间&#xff0c;而联合中所有的成员都共享同一个内存空间。 也就是说&#xff0c;union中的不同成员要…

Android WebRTC+SRS/ZLM视频通话(5):Android使用WebRTC从SRS/ZLMediaKit拉流

Android WebRTCSRS/ZLM视频通话&#xff08;5&#xff09;&#xff1a;Android使用WebRTC从SRS/ZLMediaKit拉流 来自奔三人员的焦虑日志 接着上一章内容&#xff0c;继续来记录Android是如何使用WebRTC从SRS/ZLMediaKit拉流播放。WebRTC是一种实现实时音视频通信的技术&#xf…

三分钟教你如何定义自己的ChatGPT

三分钟教你如何定义自己的ChatGPT 成品预览材料准备MyChatGPT自定义AI 成品预览 材料准备 总共有两种方式&#xff1a; 一种是使用自己的OpenAI账号&#xff0c;这种方式是可控性比较强&#xff0c;同时也会有很多问题&#xff0c;比如你需要准备国外的手机号和Visa卡&#x…

目标检测论文总结

文章目录 1.目标检测论文123456789101112131415161718192021**22****25**2627 总结改进思路 1.目标检测论文 EI https://www.engineeringvillage.com/search/quick.url 其他 A YOLOv3-based Deep Learning Application Research for Condition Monitoring of Rail Thermite …

极客公园对话 Zilliz 星爵:大模型时代,需要新的「存储基建」

大模型在以「日更」进展的同时&#xff0c;不知不觉也带来一股焦虑情绪&#xff1a;估值 130 亿美元的 AI 写作工具 Grammarly 在 ChatGPT 发布后网站用户直线下降&#xff1b;AI 聊天机器人独角兽公司 Character.AI 的自建大模型在 ChatGPT 进步之下&#xff0c;被质疑能否形成…