Shell三剑客:正则表达式简介

news2024/12/26 10:34:29

前言

        一、名称解释

                正则表达式(regular expression,RE)是一种字符模式,用于在查找过程中匹配指定的字符。在大多数程序里,正则表达式都被置于两个正斜杠之间;例如/l[oO]ve/就是由正斜杠界定的正则表达式,它将匹配被查找的行中任何位置出现的相同模式。在正则表达式中,元字符是最重要的概念,

        二、工具

                被vim、sed、awk、grep调用

        三、场景

                mysql、oracle、php、python、apache、nginx...需要正则

        五、示例

                需求:匹配数组的脚本:用户输入创建账号的数量

                语法:[[ ^[0-9]+$ ]]

                演示:

[root@localhost ~]# vim reg.sh    #脚本编辑
#!/bin/bash
#read -p "请输入数字才退出:" num

while :
do

read -p "请输入数字才退出:" num

if [[ $num =~ ^[0-9]+$ ]]
        then
                echo "谢谢,再见"
                exit 99

        else
                echo "重新输入"

fi
done

[root@localhost ~]# bash reg.sh     #执行脚本
请输入数字才退出:^H
重新输入
请输入数字才退出:jdf
重新输入
请输入数字才退出:df
重新输入
请输入数字才退出:3
谢谢,再见

 

 

 

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

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

相关文章

无需公网IP联机Minecraft,我的世界服务器本地搭建教程

目录 前言 1.Mcsmanager安装 2.创建Minecraft服务器 3.本地测试联机 4. 内网穿透 4.1 安装cpolar内网穿透 4.2 创建隧道映射内网端口 5.远程联机测试 6. 配置固定远程联机端口地址 6.1 保留一个固定TCP地址 6.2 配置固定TCP地址 7. 使用固定公网地址远程联机 8.总…

【docker三】Docker镜像的创建方法

目录 一、Docker镜像: 1、 镜像的概念 2、docker的创建镜像方式: 1.1、基于已有镜像进行创建: 1.2、基于模版创建: 1.3、基于dockerfile创建: 二、Dockerfile概述 1、Dockerfile概念: 2、dockerfile…

数据结构与算法—递归及其应用(八皇后,小球出迷宫)

递归 文章目录 递归1.递归应用场景2.递归的概念3.递归调用机制4.递归能解决什么问题5.递归需要遵守的重要规则6.递归-迷宫、八皇后问题6.1 迷宫问题6.2 八皇后问题 1.递归应用场景 迷宫问题(回溯),递归(Recursion) 2.递归的概念 简单的说:递归就是方法自…

互联网数据传输原理 |OSI七层网络参考模型

网络模型 OSI 网络参考模型,仅作为参考,也就是说OSI网络实际中并不使用。我们只是把OSI网络模型作为参考,在网络出现问题的时候,可以从一个宏观的整体去分析和解决问题。而且搭建网络的时候也并不一定需要划分为7层 但是当今互联…

面向AOP(2)spring

我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 本…

C语言使用malloc函数模拟开辟二维数组(带分析)

系列文章目录 🌟 个人主页:古德猫宁- 🌈 信念如阳光,照亮前行的每一步 文章目录 系列文章目录🌈 *信念如阳光,照亮前行的每一步* 当我们使用malloc函数来模拟创建一个二维数组时,我们需要理解…

VBA信息获取与处理:在EXCEL中随机函数的利用

《VBA信息获取与处理》教程(版权10178984)是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互…

Caching the Application Engine Server 缓存应用程序引擎服务器

Caching the Application Engine Server 缓存应用程序引擎服务器 Application Engine caches metadata just like the application server. This caching enhances performance because a program can refer to the local cache for any objects that it uses. 应用程序引擎…

客服工单系统推荐:哪个最适合您?

客服工单系统是企业的业务过程的“保安”,保障业务流程的顺利开展,同时保障企业客户的权益。所以,市场上有越来越多的企业纷纷配置了客服工单系统,以提供客户服务质量。 对于有购买意向的中小企业来讲,需要关注哪些因…

OpenKylin安装idea

Web和客户端都支持Linux了,一个为了Linux上调试程序方便,一个为了把开发环境彻底支持Linux,在Linux上安装idea运行代码,之前剔除Maven那些的优点就来了,在OpenKylin上我只要安装idea和jdk就能正常运行代码了。 首先从…

小程序嵌套H5

小程序嵌套H5 使用Hbuild x开发H5页面项目里面使用了js-sdk工具包H5发布完成之后生成URL。新建一个小程序空项目,填写小程序的appid。本地调试的时候如果报错无法打开该网页,那么需要勾选先的不校验。发布体验版本需要注意下面的两个配置点。 使用Hbuild…

CV计算机视觉每日开源代码Paper with code速览-2023.12.6

点击计算机视觉,关注更多CV干货 论文已打包,点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【基础网络架构:Transformer】Rejuvenating image-GPT as Strong Visual Representation Learners 论文地址:https://a…

你好!堆排序【JAVA】

目录 1.简单介绍 2.大小顶堆 3.基本思想 4.基本思路 4.代码实现数组转化堆 5.代码排序 6.总代码测试 1.简单介绍 堆排序是一种基于堆数据结构的排序算法,其核心思路是利用堆这种特殊的数据结构来对数据进行排序。堆是一种完全二叉树,并且满足父节…

建筑可视化数据大屏汇总,UI源文件(PC端大屏设计)

酷炫的大屏设计让数据更好的展现,方便业务人员分析数据,辅助领导决策。现在分享大屏Photoshop源文件,以下为部分截图示意。 划重点:文末可获得完整素材包~ 01 科技建筑平台数据可视化 02 建筑公司可视化数据汇总平台 03 深蓝…

算法Day27 身材管理(三维背包)

身材管理(三维背包) Description Input Output Sample 代码 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int n scanner.nextInt(); // 输入n的值int money sca…

TrustZone之完成器:外围设备和内存

到目前为止,在本指南中,我们集中讨论了处理器,但TrustZone远不止是一组处理器功能。要充分利用TrustZone功能,我们还需要系统其余部分的支持。以下是一个启用了TrustZone的系统示例: 本节探讨了该系统中的关键组件以及它们在TrustZone中的作用。 完成器:外围设备…

Docker创建镜像的方式---Dockerfile

Dockerfile可以创建自定义镜像。包括配置文件,挂载点,对外暴露的端口,设置环境变量。 Docker创建镜像的方式 1、 基于已有镜像创建:根据官方提供的镜像源,创建镜像。然后拉起容器。是一个白板智能提供基础的功能&…

【收获】成长之路

目录 一、前言二、计算机方面三、专业知识方面四、总结 一、前言 四年,对于一个人的成长来说,是一个相当重要的阶段。在这段时间里,我经历了许多挑战、收获了许多成就,也在不断地成长和改变。回首这四年的点点滴滴,我深…

mybatis多表映射-延迟加载,延迟加载的前提条件是:分步查询

1、建库建表 create database mybatis-example; use mybatis-example; create table t_book (bid varchar(20) primary key,bname varchar(20),stuid varchar(20) ); insert into t_book values(b001,Java,s001); insert into t_book values(b002,Python,s002); insert into …

牛客网(二叉树)

https://www.nowcoder.com/practice/4b91205483694f449f94c179883c1fef?tpId60&&tqId29483&rp1&ru/activity/oj&qru/ta/tsing-kaoyan/question-ranking 这个题目和leetcode比起来就是有一些不一样,需要我们自己来写接口函数,所以…