当前位置: 首页 > news >正文

正则表达式 逗号分隔_linux正则表达式详解(一) -通配符与基本正则表达式

e5b805f13c67eb28c2140291a1315d70.png

我们在很多地方都会用到通配符和正则表达式来实现我们的日常操作,提高我们的工作效率。但是很多新伙伴,往往容易将他们弄混。

首先我们需要知道通配符和正则表达式的使用场景

通配符也叫文件名替换,它主要是作用于匹配文件名,常用命令是ls、find、cp、mv;

正则表达式主要是作用于匹配文件中的字符串,常用命令命令是grep、awk、sed。


通配符日常使用:

1537a2922866695fa7870044a807324e.png

* 匹配0或者多个字符

实例:

#匹配前:
[root@localhost test]# ls
f  f-1.txt  f-2.txt  f-3.txt  ff

#匹配后:
[root@localhost test]# ls f*
f  f-1.txt  f-2.txt  f-3.txt  ff

因为f后面可以跟0个或者多个字符,所有f文件也匹配到了。

[] 匹配括号中的单个字符

实例:

#匹配前:
[root@localhost test]# ls
f  f-1.txt  f-2.txt  f-3.txt  ff

#匹配后:
[root@localhost test]# ls f-[12].txt
f-1.txt  f-2.txt

这里要注意,因为匹配的单个字符,所以后面.txt也要补全,否则会报文件找不到。

? 匹配任意单个字符

实例:

#匹配前:
[root@localhost test]# ls
f  f-1.txt  f-2.txt  f-3.txt  ff

#匹配后:
[root@localhost test]# ls f-?.txt
f-1.txt  f-2.txt  f-3.txt

[!] 匹配不在括号中的任意单个字符

实例:

#匹配前:
[root@localhost test]# ls
f  f-1.txt  f-2.txt  f-3.txt  ff

#匹配后:
[root@localhost test]# ls f-[!12].txt
f-3.txt

[a-z] 匹配a到z中的任意单个字符,表示范围,只能用于查找文件,不能创建

实例:

#匹配前:
[root@localhost test]# ls
f  f-12.txt  f-1.txt  f-2.txt  f-3.txt

#匹配后:
[root@localhost test]# ls f-[1-2].txt
f-1.txt  f-2.txt

{a,b,c}/{a..z} 以逗号分隔时,表示单独字符,以两个点号分隔时,表示连续字符。可用于查找和创建文件。

实例:

匹配前:
[root@localhost test]# ls
a.txt  d.txt  f-12.txt  f-3.txt  g.txt  j.txt  m.txt  p.txt  s.txt        u.txt  x.txt
b.txt  e.txt  f-1.txt   ff       h.txt  k.txt  n.txt  q.txt  t-[1-9].txt  v.txt  y.txt
c.txt  f      f-2.txt   f.txt    i.txt  l.txt  o.txt  r.txt  t.txt        w.txt  z.txt

匹配后:
[root@localhost test]# ls {a..z}.txt
a.txt  c.txt  e.txt  g.txt  i.txt  k.txt  m.txt  o.txt  q.txt  s.txt  u.txt  w.txt  y.txt
b.txt  d.txt  f.txt  h.txt  j.txt  l.txt  n.txt  p.txt  r.txt  t.txt  v.txt  x.txt  z.txt

匹配后:
[root@localhost test]# ls {a,b,c}.txt
a.txt  b.txt  c.txt

ps:当用逗号分隔时,查找效果和[abc]是一样的。

正则表达式日常使用:

d09a13271619061fa58284ae303116d0.png

ps:做个纠正,"{}"是扩展正则,所以grep不能直接使用,需要加-E或者使用egrep。

*       匹配前一个字符0次或者多次

实例:

52fd69febb58c3cef8c42ff704e213b2.png
.       匹配除了换行符以外的任意单个字符

实例:

06e9afa8d9d1d4f89d21caec62372d2f.png
^       锚定行首

实例:

e8fdedc2d1cd455da630ace716999f33.png
$       锚定行尾

实例:

ead6c8903dd69d5e28becbe2cfea7c65.png
[]      匹配括号中指定的任意单个字符

实例:

d3bc9d1e3c2ea54559a7ef8ab68f4c2f.png
[^]     匹配括号中以外的任意单个字符

实例:

dfa401704f9bb08546819b1a27406821.png
       转义符,取消元字符的特殊含义

实例:

45c9b6bb33f310ccd2dcb911729cc434.png
{n}     表示前面的字符出现几次,如果不想使用,可以使用egrep

实例:

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

实例:

68be1b3c79f90b180a7abc01556ad3a1.png
{n,m}       至少匹配前面的字符n次,但是不得多于m次

实例:

1dd0ddc35ed03e3f117d0cf8dbf08a1e.png

ps:一定要注意,在通配符中,{}可以用来表示连续的字符,但是在正则表达式中,是表示前面字符出现的次数。

今天就先说到这,后面我们继续探讨拓展正则表达式。

获取文章更新,以及常用软件,可以关注公众号: 笨办法学linux

911bb201927ed63161f000283b877a3a.png

相关文章:

  • 加到service中无效_Dataway让Spring Boot不在需要Controller、Service、DAO、Mapper
  • aac蓝牙编解码协议_国庆耳机选购盘点,适合假期使用的平价蓝牙耳机推荐
  • kafka 不同分区文件存储_消息系统Kafka笔试题:Kafka 底层的文件存储结构
  • kafka怎么查看消息堆积_Kafka 线上问题: 消息堆积一直不消费, 重启服务后开始消费...
  • 豪沃轻abs12v电是什么系统_小汽车显示abs是什么问题,ABS系统介绍
  • python列表删重_python列表删除和多重循环退出原理详解
  • redis集群如果保证数据一致性_从CAP理论到分布式一致性协议
  • 影像科dsa为什么必须买维修保险_为什么大家对影像科了解得那么少呢?
  • netcore权限控制_lin-cms-dotnetcore.是如何方法级别的权限控制的?
  • 文本框 清空_只需5步,Unity中创建自滚动聊天室文本框
  • java判断是否运行在windows terminal_判断制冷空调系统是否运行正常的5个参数
  • mpa和pis_psig与mpa换算(压力单位换算psi)
  • php环境mysql 5.5安装教程_win7(64位)php5.5-Apache2.4-mysql5.6环境安装
  • mysql分组去掉重复记录_mysql去掉重复数据只保留一条,以及取分组后的一条数据...
  • 查看mysql的位数_如何查看mysql是几位的
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • extract-text-webpack-plugin用法
  • Java-详解HashMap
  • JDK 6和JDK 7中的substring()方法
  • Less 日常用法
  • Python进阶细节
  • quasar-framework cnodejs社区
  • Rancher如何对接Ceph-RBD块存储
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 二维平面内的碰撞检测【一】
  • 机器学习 vs. 深度学习
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 深入浅出webpack学习(1)--核心概念
  • 使用agvtool更改app version/build
  •  一套莫尔斯电报听写、翻译系统
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • C# - 为值类型重定义相等性
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • (3)nginx 配置(nginx.conf)
  • (9)目标检测_SSD的原理
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (MATLAB)第五章-矩阵运算
  • (windows2012共享文件夹和防火墙设置
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (搬运以学习)flask 上下文的实现
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)springboot教学评价 毕业设计 641310
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)基于IDEA的JAVA基础1
  • (转)程序员技术练级攻略
  • .a文件和.so文件