正则表达式与文本处理器

文本处理器三剑客:grep(查找) sed  awk

正则表达式:由一类特殊字符以及文本字符所编写的一种模式,处理文本当中的内容

其中的一些字符不表示字符的字面含义,这些字符表示控制或者通配的功能

通配符:匹配文件名和目录名,不能匹配文件内容

正则表达式有两种匹配结果:命令结果和文件内容都可以进行匹配

通配符:

*:匹配任意一个或多个字符              例:ls  *.txt

?:匹配任意一个字符                      例:ls  ?,txt

[ ] :匹配范围内的任意单个字符        例:touch  {a..z}.txt     ls  [a-b].txt

正则表达式:有两种形态   1、基本正则表达式  2、拓展正则表达式  两者仅限于写法上的区别,其他一样

基本正则:字符匹配,元字符,匹配的部分需要用引号引起来

.:表示匹配任意的单个字符,可以是一个汉字   例:ls  |  grep  "12."

\:表示转义符   \.才是表示一个点

():表示分组的意思    \(\):这时仅表示( )

[ ]:匹配已指定范围内的任意单个字符     

例:[0-9]  [A-Z]  [a-z]               ls  |  grep  "[0-9]"    显示所有:ls  |  grep  "[0-9  a-z  A-Z]"   标准写法

[ ^ ]:表示取反,指定范围外的    

例:ls  |  grep  "[A-Z0-9.]"     .也算字符

例:以rc开头,任意单个字符,0-6的数字

 只匹配以rc.为开头的文件

 过滤/etc/passwd中任意的两个字符r和t

 

总结:通配符不能完全匹配大小写,真正的大小写在正则表达式中

表示匹配不是a或者z的任意字符

正则表达式中表示次数的表达式:

*:匹配前面的字符任意次,0次也行,无数次也行,有多少匹配多少,没有也行

 .*:也是匹配任意长度的字符,但是至少要有一次,不包括0次

最少前面要有一个o,否则不匹配

 \?:表示匹配前面的字符0次或者1次(即可有可无)

 有则匹配,没有也匹配

\+:匹配前面的字符至少一次,最多可以无数次

\{n\}:匹配前面的字符=n次   精确匹配  n:表示前面字符出现的次数,多一次少一次都不行、、

 

\{m,n\}:匹配前面的字符最少m次,最多n次

 

\{,n\}:匹配前面的字符最多n次     大于n不行    o最少出现n次

\{n,\}:匹配前面的字符至少n次     小于n不行

匹配次数就是核心

位置锚定:以什么为开头,以什么为结尾

^:以什么为开头,在模式的左侧   ^r  以r为开头

$:以什么最为结尾,在模式的右侧    r$  以r为结尾

^  root  $:用于匹配整行,而且整行中只有一个root,多一个少一个都不行

^$:匹配空行   

 

词首锚定和词尾锚定(用的较少)

词尾铆钉:<或者 \b  推荐用\b因为更直观,用\b的位置来判断词首和词尾

词首锚定:>或者 \b  

 例:

 

分组:用()进行表示   

精确匹配 \{\} 一定要连续出现     \{,3\} 就不用连续出现

\{n\} 表示正好n次,n次表示前面的字符必须连续出现才能出现

\{,n\} 只要出现几次都算,除非没有

例:

 

 

只匹配gogle 

\ |:表示逻辑或

 

扩展正则:就是把去掉不用再写,但是也有要求 grep  要写成  grep  -E  或 egrep

 

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

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

相关文章

在分区工具上,格式化分区和删除分区. 两者有什么不一样吗?

1.格式化分区&#xff1a;就是重建文件系统&#xff0c;等于把目标分区的数据全部清掉。 删除分区&#xff1a;你删除后可以再重新分区&#xff0c;可以分区多个分区&#xff0c;前提是“删除分区”的大小足够大。分了区&#xff0c;还必须格式化&#xff0c;才能用。 只有分了…

ThreadLocal内存泄露原因,如何避免

内存泄露为程序在申请内存后&#xff0c;无法释放已经申请的内存空间&#xff0c;一次内存泄露可以忽略&#xff0c;但是内存泄露堆积后果很严重&#xff0c;无论多少内存迟早被用光。 不再会被使用的对象或者变量占用的内存不能被回收&#xff0c;就是内存泄露。 强引用&…

掌握无人机遥感数据预处理的全链条理论与实践流程、典型农林植被性状的估算理论与实践方法、利用MATLAB进行编程实践(脚本与GUI开发)以及期刊论文插图制作等

目录 专题一 认识主被动无人机遥感数据 专题二 预处理无人机遥感数据 专题三 定量估算农林植被关键性状 专题四 期刊论文插图精细制作与Appdesigner应用开发 近地面无人机植被定量遥感与生理参数反演 更多推荐 遥感技术作为一种空间大数据手段&#xff0c;能够从多时、多…

LayUi之手风琴的趣味案例

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于LayUi的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.手风琴是什么 二.手风琴在什么时候使用…

Vue 3 功能实现

Vue 3 功能实现 本论旨在研究和分析 Vue 3 的功能实现&#xff0c;深入探讨 Vue 3 作为下一代前端开发框架的特色与创新。论文首先介绍了 Vue 3 的背景和发展历程&#xff0c;随后重点讨论了其引入的核心功能和改进之处&#xff0c;包括响应式系统的全面重构、Composition API…

性能测试之性能问题分析

开始性能测试前需要了解的内容&#xff1a; 1、项目具体需求。 2、指标&#xff1a;响应时间在多少以内&#xff0c;并发数多少&#xff0c;tps多少&#xff0c;总tps多少&#xff0c;稳定性交易总量多少&#xff0c;事务成功率&#xff0c;交易波动范围&#xff0c;稳定运行时…

浅谈chatgpt如何改变人们生活

ChatGPT&#xff0c;作为一种自然语言处理模型&#xff0c;确实有潜力改变人们的生活。以下是ChatGPT如何可能改变人们生活的几个方面&#xff1a;1.智能助手和客户支持&#xff1a;ChatGPT可以作为智能助手嵌入到各种应用中&#xff0c;为用户提供即时的帮助和解答问题。在客户…

【iOS】—— 面向对象,Runtime,ARC等问题总结

对于暑假学习大多数是对之前学习的一个复习&#xff0c;在这里只做对之前学习欠缺知识的补充以及这些知识点涉及的一些问题&#xff0c;从问题入手学习。 文章目录 面向对象1.一个NSObject对象占多少内存&#xff1f;2.对象的isa指针指向哪里&#xff1f;3.OC的类信息存放在哪…

spring复习:(41)全注解方式的事务

一、创建事务、数据源相关的配置类&#xff1a; package cn.edu.tju.study.service.transaction;import com.zaxxer.hikari.HikariDataSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import or…

诚迈科技子公司智达诚远精耕智能驾驶,为商用落地注入创新力量

近期&#xff0c;工业和信息化部副部长辛国斌在新闻发布会上表示&#xff0c;将启动智能网联汽车准入和上路通行试点&#xff0c;组织开展城市级“车路云一体化”示范应用&#xff0c;将支持L3级及更高级别的自动驾驶功能商业化应用。根据工信部最新消息&#xff0c;《智能网联…

使用matlab中的SVM进行数据回归预测

在MATLAB中使用支持向量机&#xff08;SVM&#xff09;进行数据回归预测&#xff0c;你可以遵循以下步骤&#xff1a; 准备数据集&#xff1a; 将你的特征矩阵X和目标变量向量y加载到MATLAB工作空间中。确保X和y的维度匹配。 拆分数据集&#xff1a; 将数据集划分为训练集和测…

AI编程助手体验

一、背景 最近在接触各种AI插件&#xff0c;用copilot的话要10美元每月&#xff0c;太贵&#xff0c;就下载了清华的CodeGeeX 刚好&#xff0c;有个需求&#xff0c;需要将枚举的所有值&#xff0c;随机组合求和&#xff0c;并返回所有组合之和。 ”假设你有一个名为 enum_v…

实际上手体验maven面对冲突Jar包的加载规则 | 京东云技术团队

一、问题背景 相信大家在日常的开发过程中都遇到过Jar包冲突的问题&#xff0c;emm&#xff0c;在最近处理业务需求时我也遇到了不同版本jar包冲突导致项目加载出错的问题。主要是一个完整的项目会不可避免的使用第三方的Jar包来实现功能开发&#xff0c;各种第三方包之间可能…

大数据篇Kafka消息队列指定Topic打印Key、Value、Offset和Partition

1、概念简介 说到Apache Kafka消息传递系统时&#xff0c;以下是一些关键概念的解释&#xff1a; Key&#xff08;键&#xff09;&#xff1a;Kafka消息由Key和Value组成。Key是一个可选的字段&#xff0c;它通常用于消息的路由和分区策略。Key的目的是确保具有相同Key的消息…

Python 3 拷贝、浅拷贝、直接引用

诸神缄默不语-个人CSDN博文目录 复杂的以后再补。 总的来说&#xff0c;像常数、字符串这种比较简单的变量无所谓&#xff0c;但是对于一些复杂对象&#xff08;比如list等&#xff09;&#xff0c;如果直接使ba&#xff0c;相当于直接把a的路径给了b&#xff0c;b这个对象的…

day35-Postman/ajax

0目录 1.postman 2.ajax 1.Postman 1.1 定义&#xff1a;postman用于测试http协议接口&#xff0c;无论是开发还是测试人员 1.2 Servlet中的doGet&#xff08;&#xff09;/doPost…

建造者模式-复杂对象的组装与创建

生产一辆车&#xff0c;主要有以下步骤&#xff1a;安装骨架、安装发动机及安装轮胎。这些步骤有指定的执行顺序&#xff0c;步骤缺一不可。 图 传统方案 传统方案存在的问题&#xff1a; 传参不便&#xff0c;虽可在构造函数那传参&#xff0c;但是传参时需要注意参数顺序等…

出租屋智能电表系统

随着科技的不断发展&#xff0c;智能化逐渐成为人们生活中不可或缺的一部分。在房屋租赁市场中&#xff0c;智能电表系统成为越来越多出租屋的标配&#xff0c;为房东和租户带来了便捷和安全。本文将从以下几个方面介绍出租屋智能电表系统的特点和优势。 一、出租屋智能电表系统…

LCD-STM32液晶显示中英文-(7.字模及显示原理)

目录 字模介绍 什么是字模 字模的构成 字模显示原理 字模制作 如何制作字模 字模寻址公式 存储字模文件 字模介绍 什么是字模 有了编码&#xff0c;我们就能在计算机中处理、存储字符了&#xff0c;但是如果计算机处理完字符后直接以编码的形式输出&#xff0c;人类将难…

Flutter:网络图像缓存插件——cached_network_image

前言 为什么要使用这个插件&#xff0c;有什么用呢&#xff1f;毕竟官方提供了Image.network来进行网络图片加载 Image.network和CachedNetworkImage都可以用于在Flutter中加载网络图片&#xff0c;但它们之间有一些区别。 Image.network是Flutter核心库提供的一个构造函数&…