百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

熟悉 Shell脚本 - 正则表达式(shell脚本中的正则匹配)

lipiwang 2025-03-25 15:03 6 浏览 0 评论

1 基本正则表达式

1.1 行首定位符“^”

1.2 行尾定位符“$”

1.3 单个字符匹配“.”

圆点“.”用来匹配任意单个字符,包括空格,但是不包括换行符“\n”。

可以连续使用圆点符号来匹配多个字符,例如“l..p”匹配含有1个字母“l”,然后是任意两个字符,再接着是一个字母“p”的字符串。

1.4 限定符“*”

星号“*”是正则表达式中的限定符之一。限定符本身不代表任何字符,它是用来指定其前面的一个字符必须重复出现多少次才能满足匹配。星号“*”表示匹配其前导字符的任意次数,包括0次。

1.5 字符集匹配“[]”

方括号“[]”的功能比较特殊,它是用来指定一个字符集合的。

其中a、b和c表示任意的单个字符。只要某个字符串在方括号所在的位置上出现了方括号中的任意一个字符,就都满足匹配规则。另外,对于连续的数字或者字母,可以使用连字符“”来表示一个范围,例如“[af]”表示匹配字母表中a到f中的任意一个字母,而“[09]”表示匹配任意单个数字。

1.6 字符集不匹配“[^]”

1.7 其他一些元字符

2 扩展正则表达式

2.1 限定符“+”

加号“+”的意义与限定符“*”基本相同,但是星号“*”限定前面的字符可以出现任意次,而加号“+”却限定前面的字符至少出现一次。

2.2 限定符“?”

问号“?”是另外一个限定符,它用来限定前面的字符最多只出现1次,即前面的字符可以重复0次或者1次。

2.3 竖线“|”和圆括号“()”

竖线“|”表示多个正则表达式之间“或”的关系,其语法为:

圆括号“()”用来表示一组可选值的集合。竖线和圆括号经常在一起使用,表示一组可选值。

3 Perl正则表达式

正则表达式是Perl语言的一大特色。Shell中的grep和egrep命令都支持Perl正则表达式。Perl正则表达式的元字符与扩展正则表达式的元字符大致相同,扩展正则表达式中的元字符在Perl正则表达式中都得到了支持。另外,Perl正则表达式还增加了一些元字符。下面对常用的增加的元字符进行介绍。

3.1 数字匹配\d

符号“\d”匹配0~9中的任意一个数字字符,等价于表达式“[09]”。

3.2 非数字匹配\D

符号“\D”和符号“\d”的作用恰好相反,后者是匹配一个0~9之间的单个数字字符,而前者则匹配一个非数字字符。“\D”等价于表达式“[^09]”。

3.3 空白字符匹配\s

符号“\s”匹配任何空白字符,包括空格、制表符以及换页符等,等价于表达式“[\f\n\r\t\v]”。

3.4 非空白字符匹配\S

符号“\S”匹配任何非空白字符,等价于表达式“[^\f\n\r\t\v]”。

4 正则表达式字符集

与其他普通字符一样,上表列出的字符类也需要放在方括号中。例如:

等价于以下表达式:

5 运算符优先级

正则表达式按照从左到右的顺序进行计算,并且遵循一定的优先级,这一点与算术表达式非常相似。所谓优先级,是指在正则表达式中,当多个运算符同时出现时,高优先级的运算符将被先处理,低优先级的运算符将被后处理。表83按照从高到低的顺序依次列出了运算符的优先级。

相关推荐

Qwen上新AI前端工程师!一句话搞定HTML/CSS/JS,秒变React大神

梦晨发自凹非寺量子位|公众号QbitAIQwen上新“AI前端工程师”WebDev,一句话开发网页应用。三大件HTML,CSS,JavaScript一个工具全包了,定睛一看用的还是Reac...

程序员的 JavaScript 代码该如何让计算机搞懂?

出自程序员之手的JavaScript代码,该如何变成计算机所能理解的机器语言呢?本文将带你走进JavaScript引擎内部,一探究竟。作者|LydiaHallie译者|弯月,责编|...

JavaScript:如何优雅的创建数组?

在JavaScript里,有多种方式可以创建数组,下面为你详细介绍:1.使用数组字面量这是最常用的创建数组的方法,使用方括号[]来创建数组。//创建一个空数组letemptyArray...

Jquery 详细用法

1、jQuery介绍(1)jQuery是什么?是一个js框架,其主要思想是利用jQuery提供的选择器查找要操作的节点,然后将找到的节点封装成一个jQuery对象。封装成jQuery对象的目的有...

HTML页面基本结构和加载过程

大家好,我是皮皮。前言对于前端来说,HTML都是最基础的内容。今天,我们来了解一下HTML和网页有什么关系,以及与DOM有什么不同。通过本讲内容,你将掌握浏览器是怎么处理HTML内容的,...

【HarmonyOS Next之旅】兼容JS的类Web开发(一)

目录1->概述1.1->整体架构2->文件组织2.1->目录结构2.2->文件访问规则2.3->媒体文件格式3->js标签配置3....

JavaScript初学者指南

如果你刚接触JavaScript,想必已经被“modulebundlersvs.moduleloaders”、“Webpackvs.Browserify”和“AMDvs.Common...

前端图片延迟加载详细讲解

原文链接:http://www.gbtags.com/gb/share/6366.htm?原本是打算昨天昨天下午的时候就写一篇关于前端图片延迟加载的详细技术的博客的,没想到下午公司项目出现了一些问题...

selenium:操作滚动条的方法(8)

selenium支持几种操作滚动条的方法,主要介绍如下:使用ActionChains类模拟鼠标滚轮操作使用函数ActionChains.send_keys发送按键Keys.PAGE_DOWN往下滑动...

jQuery 获取和设置HTML元素

jQuery中包含更改和操作HTML元素和属性的强大方法。我们可以通过这些方法来获取HTML元素中的文本内容、元素内容(例如HTML标签)、属性值等。text()方法text()方法可以用...

JavaScript脚本如何断言select下拉框的元素内容?

使用JavaScript脚本断言select下拉框的元素内容,需要考虑页面元素是否加载成功,出错时打印等,主要实现功能功能需包括如下几点:1.等待下拉框元素加载完成(支持超时设置)2.获取下...

JavaScript图片或者div拖动拖动函数的实现

/**拖动图片封装html格式:<imglay-src="${item.Resourcesurl}"alt="${item.ResourcesName}"...

JavaScript代码怎样引入到HTML中?

JavaScript程序不能独立运行,它需要被嵌入HTML中,然后浏览器才能执行JavaScript代码。通过<script>标签将JavaScript代码引入到HTM...

当你在Vue.js中想要隐藏 `` 标签时,可以这样做:

在Vue.js里,要是你想要搞掉`<br>`(换行)标签的效果,通常有几种路子:1.使用CSS嗯,最简单的办法就是用CSS搞定,控制元素的样式,让<br>标签彻底不显示...

php手把手教你做网站(三十)上传图片生成缩略图

三种方法:按比例缩小、图片裁切、预览图片裁切不管使用哪一个都是建立在图片已经上传的基础上;预览裁切上传,如果预览的图片就是原始大小,可以预览裁切以后上传(这里是个假象,下边会说明);1、上传以后按比例...

取消回复欢迎 发表评论: