linux 脚本 正则表达式

正则表达式

分类

基础正则表达式:BRE

扩展正则表达式:ERE

编程语言支持的高级正则表达式

BRE 和 ERE的语法基本一致,只有部分元字符(预定义好的带有特殊含义的一些符号)需要特殊对待

grep sed 默认使用的基本正则表达式,grep -E,sed -r,egrep,awk使用扩展正则表达式

基本正则表达式

匹配字符

 abc:匹配字符串"abc",普通字符的匹配

[abcde...]:匹配括号内的任意单个字符

a[xyz]:匹配ax ay az   

a[xyz]b:匹配axb ayb azb

\n:匹配换行符

\t:匹配制表符

\w:匹配单词字符 [a-zA-Z0-9]

\W:匹配非单词字符 [^a-zA-Z0-9]

\s:匹配空白字符

\S:匹配非空白字符

\d:匹配数字

\D:匹配非数字

.  :匹配任意单个字符

上面所说的单词,在正则表达式中的含义:[a-zA-Z0-9]组成的字符或字符串都是单词

例如 nihao  hello  world 都是单词

字符组

[a-z]:代表任意单个小写字母

[^a-z]:只要单个非小写字母的其他任意字符

[A-Z]:代表任意大写字母

[0-9]:代表任意单个数字  [0-59] 代表匹配 0-5  和 9

[a-z0-9A-Z]:代表任意字母或数字

[a-z0-9A-Z_]:代表任意字母数字下划线 即匹配单词字符

字符类

[:lower:]   等价于 a-z

[:upper:]   等价于 A-Z

[:alpha:]   等价于 A-Za-z  也等价于[:lower:]+[:upper:]

[:digit:]   等价于0-9

[:alnum:]  等价于 等价于0-9A-Za-z 也等价于[:lower:]+[:upper:]+[:digit:] 

[:xdigit:]    匹配十六进制数字 0 1 2 3 4 5 6 7 8 9 a b c d e f (大写也行)

[:blank:]    匹配空格或制表符

[:space:]   匹配空格,制表符,换行符,换页符,垂直制表符,回车符等等所有空白符号

[:punct:]    匹配所有标点符号     ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` {}

[:print:]    可打印字符,等价于[:alnum:]+[:punct:]+空格

[:graph:]  圆形字符,即能展现字符颜色的符号,等价于[:alnum:]+[:punct:]

位置锚定

^  匹配行首

$  匹配行尾

\< 匹配单词开头处的位置

\> 匹配单词结尾处的位置

^  内容 $  用于匹配整行

^$ 匹配空行

表示次数

*  表示匹配前面的字符任意次,包括0次 

.* 任意长度的任意字符

\? 匹配其前面的字符出现0次或1次 即可有可无

\+ 匹配其前面的字符出现最少1次 即:肯定会出现 =>1次

\{n\} 匹配前面的字符n次

\{m,n\} 匹配前面的字符m次 至多n次

\{,n\} 匹配前面的字符至多n次 ,<=n

\{n,\} 匹配前面的字符至少n次

扩展正则表达式

grep -E 

egrep  默认使用的 扩展正则

表示次数

*  匹配前面字符任意次

? 0或1次

+ 1次或多次

{n} 匹配n次

{m,n} 至少m 至多n次

{,n} 匹配前面的字符至多n次 

{n,} 匹配前面的字符至少n次

表示分组

() 分组

分组:() 将多个字符捆绑在一起,当作一个整体处理,如: \(root\)+

后向引用:\1,\2, ...

| 或者

a|b  a或b    C|cat C或cat  (C|c)at   Cat 或cat

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

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

相关文章

zookeeper源码(07)leader、follower和observer

Leader 构造方法 public Leader(QuorumPeer self, LeaderZooKeeperServer zk) throws IOException {this.self self;this.proposalStats new BufferStats();// 获取节点间通信地址Set<InetSocketAddress> addresses;if (self.getQuorumListenOnAllIPs()) {addresses …

ANAPF有源电力滤波器选型计算——安科瑞赵嘉敏

配电系统中谐波电流的计算涉及很多因素。对于改造项目&#xff0c;可使用专业电能质量分析仪测得所需谐波数据&#xff1b;对于新建项目&#xff0c;设计人员并不能直接获得供电系统的的谐波数据&#xff0c;因此&#xff0c;我司研发人员通过众多不同行业、不同类型的项目&…

MySQL原理(二)存储引擎(2)MyISAM

一、MyISAM介绍 1、介绍&#xff1a; MyISAM引擎是MySQL5.5版本之前的数据库所默认的数据表引擎。每一个采用MyISAM引擎的数据表在实际存储中都是由三个文件组成&#xff0c;分别是frm文件保存表的结构&#xff0c;MYD文件保存表的数据、MYI文件保存表的索引&#xff0c;文件…

Android C++生成complier_command.json

Android C 程序开发现状 在 Android 下开发 C 程序&#xff0c;我见过绝大多数人都是不使用任何语法插件&#xff0c;就靠硬写&#xff0c;写完之后再根据编译报错来修改语法错误。这也怪不得程序员&#xff0c;一方面&#xff0c;Android 使用 Arm 平台的 clang 编译器&#x…

JSP仓储管理系统myeclipse定制开发SQLServer数据库网页模式java编程jdbc

一、源码特点 JSP仓储管理系统系统是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库 &#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为SQLServer2008&#x…

扩展学习|一文明晰推荐系统应用开发核心技术发展

文献来源&#xff1a;Lu J, Wu D, Mao M, et al. Recommender system application developments: a survey[J]. Decision support systems, 2015, 74: 12-32. 主题&#xff1a;关于推荐系统应用开发的调查研究 关键词:推荐系统、电子服务个性化、电子商务、电子学习、电子政务 …

除了Adobe之外,还有什么方法可以将Excel转为PDF?

前言 Java是一种广泛使用的编程语言&#xff0c;它在企业级应用开发中发挥着重要作用。而在实际的开发过程中&#xff0c;我们常常需要处理各种数据格式转换的需求。今天小编为大家介绍下如何使用葡萄城公司的的Java API 组件GrapeCity Documents for Excel&#xff08;以下简…

Java递归结构

1.递归是一种常见的算法思路&#xff0c;在很多算法中都会用到。比如&#xff1a;深度优先搜索&#xff08;DFS&#xff09;等。 2.递归的基本思想就是“自己调用自己”。 递归结构包括两个部分&#xff1a; 递归头&#xff1a;什么时候不调用自身方法。如果没有递归头&#…

人机协同的效果并不总能达到预期效果

当前的人工智能技术仍然存在一定的局限性&#xff0c;尤其是在处理复杂的任务或灵活适应环境变化时&#xff0c;往往难以达到人类的水平&#xff0c;还有&#xff0c;人类参与人机协同时可能存在主观意识、情绪波动或偏见等因素&#xff0c;这些因素都可能会影响到人机协同的结…

BL808学习日志-3-DPI-RGB屏幕使用-LVGL D0

一、DPI-RGB驱动 BL808的手册上显示是支持RGB565屏幕显示输出的&#xff0c;但是一直没找到网上的使用例程。且官方的SDK显示也是能够使用的&#xff0c;只是缺少了驱动。这一部分驱动在SIPEED的SDK中已经内置了&#xff0c;今天就是简单的点亮一个800*480 RGB565的屏幕。 二、…

Java基础数据结构之Lambda表达式

一.语法 基本语法&#xff1a;(parameters)->expression或者(parameters)->{statements;} parameters&#xff1a;类似方法中的形参列表&#xff0c;这里的参数是函数式接口里面的参数。这里的参数可以明确说明&#xff0c;也可以不声明而由JVM隐含的推断。当只有一个推…

C++实习报告(集合交,并,差运算的实现)

一、问题描述 1、问题描述 集合元素类型可以是整数、字符串和小数&#xff0c;实现集合的交、并、差运算。 2、功能要求 &#xff08;1&#xff09;用户能够输入两个集合元素&#xff1b; &#xff08;2&#xff09;能够完成集合的交、并、差运算&#xff1b; &#xff08;3&a…

07. STP的基本配置

文章目录 一. 初识STP1.1. STP概述1.2. STP的出现1.3. STP的作用1.4. STP的专业术语1.5. BPDU的报文格式1.6. STP的选择原则&#xff08;1&#xff09;选择根桥网桥原则&#xff08;2&#xff09;选择根端口原则 1.7. 端口状态1.8. STP报文类型1.9. STP的收敛时间 二. 实验专题…

【MySQL 流浪之旅】 第六讲 浅谈 MySQL 锁

系列文章目录 【MySQL 流浪之旅】 第一讲 MySQL 安装【MySQL 流浪之旅】 第二讲 MySQL 基础操作【MySQL 流浪之旅】 第三讲 MySQL 基本工具【MySQL 流浪之旅】 第四讲 MySQL 逻辑备份【MySQL 流浪之旅】 第五讲 数据库设计的三个范式 目录 系列文章目录 一、什么是锁&#x…

07-Nacos-接入Mysql实现持久化

1、默认内嵌的数据库 Derby 存于/data目录 2、扩展仅支持Mysql 5.6.5 执行Nacos中的SQL脚本&#xff0c;该脚本是Nacos-server文件夹中的nacos-mysql.sql 详见 01-Nacos源码打包、部署-CSDN博客 3、修改配置文件 Nacos-server中的conf目录下&#xff0c;application.proper…

【协程报错】TypeError: An asyncio.Future, a coroutine or an awaitable is required

报错语句&#xff1a; loop.run_until_complete(tasks) 改成&#xff1a; loop.run_until_complete(asyncio.wait(tasks))说明&#xff1a; 解决方法&#xff1a;将任务对象封装到asyncio.wait中。这里wait函数的作用是给tasks列表中每一个任务对象赋予一个可被挂起的权限。 …

5种ai智能自动写作,让你的写作效率秒拔高

写作是一项需要耗费大量时间和精力的任务&#xff0c;但现在有了AI智能自动写作软件&#xff0c;我们可以轻松提高写作效率。在国内市场上&#xff0c;有许多优秀的写作软件可供选择。本文将向您推荐5款国内的写作软件&#xff0c;并详细说明每款软件的功能特点。 爱制作AI 使…

小项目:使用MQTT上传温湿度到Onenet服务器

前言 我们之前分别编写了 DHT11、ESP8266 和 MQTT 的代码&#xff0c;现在我们将它们仨整合在一起&#xff0c;来做一个温湿度检测小项目。这个项目可以实时地将 DHT11 传感器获取到的温湿度数据上传到 OneNET 平台。通过登录 OneNET&#xff0c;我们随时随地可以查看温湿度数…

Hive 排名函数ROW_NUMBER、RANK()、DENSE_RANK等功能介绍、对比和举例

目录 1. ROW_NUMBER() 2. RANK() 3. DENSE_RANK() 4. NTILE() 5. CUME_DIST() 6. PERCENT_RANK() 1. ROW_NUMBER() 功能&#xff1a;ROW_NUMBER() 函数为每个分组内的行提供唯一的序列号&#xff0c;从1开始。如果在 OVER() 子句中使用 ORDER BY 语句&#xff0c;它将根据…

山体滑坡在线安全监测预警系统(解决方案)

在近年来&#xff0c;随着全球气候变化的影响&#xff0c;山体滑坡等自然灾害频发&#xff0c;给人们的生命财产安全带来了严重威胁。为了有效预防和减少山体滑坡带来的危害&#xff0c;许多地方开始在山上安装山体滑坡在线安全监测预警系统&#xff08;解决方案&#xff09;。…