课时105:正则表达式_进阶知识_扩展符号

ops/2024/9/24 6:29:14/

1.1.1 扩展符号

学习目标

这一节,我们从 基础知识、简单实践、小结 三个方面来学习

基础知识

简介

字母模式匹配[:alnum:] 字母和数字[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z[:lower:] 小写字母,示例:[[:lower:]],相当于[a-z][:upper:] 大写字母
数字模式匹配[:digit:] 十进制数字[:xdigit:]十六进制数字
符号模式匹配[:blank:] 空白字符(空格和制表符)[:space:] 包括空格、制表符(水平和垂直)、换行符、回车符等各种类型的空白[:cntrl:] 不可打印的控制字符(退格、删除、警铃...[:graph:] 可打印的非空白字符[:print:] 可打印字符[:punct:] 标点符号注意:在使用该模式匹配的时候,一般用[[ ]]- 第一个中括号是匹配符[] 匹配中括号中的任意一个字符- 第二个[]是格式 如[:digit:]
属性模式匹配\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [\f\r\t\v]。\S 匹配任何非空白字符。等价于 [^\f\r\t\v]\w 匹配一个字母,数字,下划线,汉字,其它国家文字的字符,等价于[_[:alnum:]]\W 匹配一个非字母,数字,下划线,汉字,其它国家文字的字符,等价于[^_[:alnum:]]

简单实践

准备文件

[root@localhost ~]# cat file1.txt
acd
abc
a_c
aZc
aZd
a c
a3c

精确匹配实践

以a开头c结尾  中间a-zA-Z0-9任意字符  长度为三个字节的字符串
[root@localhost ~]# egrep "^a[[:alnum:]]c$" file1.txt
abc
aZc
a3c以a开头c结尾  中间是a-zA-Z任意字符  长度为三个字节的字符串
[root@localhost ~]# egrep "^a[[:alpha:]]c$" file1.txt
abc
aZc以a开头c结尾  中间是0-9任意字符  长度为三个字节的字符串
[root@localhost ~]# egrep "^a[[:digit:]]c$" file1.txt
a3c以a开头c结尾  中间是a-z任意字符  长度为三个字节的字符串
[root@localhost ~]# egrep "^a[[:lower:]]c$" file1.txt
abc以a开头c结尾  中间是A-Z任意字符  长度为三个字节的字符串
[root@localhost ~]# egrep "^a[[:upper:]]c$" file1.txt
aZc以a开头c结尾  中间是可打印符号  长度为三个字节的字符串
[root@localhost ~]# egrep "^a[[:print:]]c$" file1.txt
abc
a_c
aZc
a c
a3c以a开头c结尾  中间是符号字符  长度为三个字节的字符串
[root@localhost ~]# egrep "^a[[:punct:]]c$" file1.txt
a_c以a开头c结尾  中间是空格或者TAB符字符  长度为三个字节的字符串
[root@localhost ~]# egrep "^a[[:blank:]]c$" file1.txt
a c
[root@localhost ~]# egrep "^a[[:space:]]c$" file1.txt
a c以a开头c结尾  中间是十六进制字符  长度为三个字节的字符串
[root@localhost ~]# egrep "^a[[:xdigit:]]c$" file1.txt
abc
a3c

小结



http://www.ppmy.cn/ops/14437.html

相关文章

智慧物流时代:数字化转型下的物流新篇章

一、什么是智慧物流? 智慧物流是一种利用先进科技和信息技术优化物流供应链系统的新型模式。以数据为核心,智慧物流通过物联网、云计算、大数据和人工智能等技术手段实现物流信息的全面记录、无缝对接和智能化处理。其核心在于实现物流各环节的精细化、…

Spark pivot数据透视从句

1. 概念2. 实战 2.1. 新列的决定因素2.2. 新列别名2.3. column_list中指定多个字段2.4. 多个聚合函数的使用2.5. 最终出现在SQL结果中的决定因素 Spark pivot数据透视从句 1. 概念 描述 用于数据透视,根据特定的列获取聚合值,聚合值将转换为select子句…

Vue接收接口返回的mp3格式数据并支持在页面播放音频

一、背景简介 在实际工作中需要开发一个转音频工具,并且能够在平台页面点击播放按钮播放音频 二、相关知识介绍 2.1 JS内置对象Blob Blob对象通常用于处理大量的二进制数据,可以读取/写入/操作文件、音视频等二进制数据流。Blob表示了一段不可变的二…

42. 【Android教程】活动:Activity

从今天开始将会学习一个非常重要的概念——Android 四大组件,在 Android 中几乎所有的功能都和四大组件密不可分,而 Activity 是其中出场率最高的组件,也是对用户感知度最高的组件,当然也可以说是四大组件中最重要的一个组件。我们…

架构师系列-Nginx、OpenResty(三)- 负载均衡配置

Nginx负载均衡 负载均衡用于从“upstream”模块定义的后端服务器列表中选取一台服务器接受用户的请求,一个最基本的upstream模块是这样的,模块内的server是服务器列表: #动态服务器组 upstream dynamicserver {server 172.16.44.47:9001; #…

【c/c++】cpp对c的增强

&#xff08;1&#xff09;hello world代码 main.cpp文件 //包含c输出输出流的头文件&#xff0c;iostream.h //c中头文件的命名可以不再写.h的后缀&#xff0c;比如这里的iostream和test //#include "iostream" #include <iostream> #include "test&q…

在使用Dubbo时,如何高效地进行网络通信?有哪些优化策略?

在使用Dubbo时&#xff0c;如何高效地进行网络通信及其优化策略 在当前的分布式系统架构中&#xff0c;微服务已经成为了一种主流的设计模式&#xff0c;而RPC&#xff08;远程过程调用&#xff09;则是微服务之间通信的基石。Apache Dubbo作为一款高性能、轻量级的开源Java R…

c++:数据结构链表list的模拟实现

文章目录 链表的知识回顾前期工作构造节点迭代器注意构造迭代器解引用*迭代器迭代器->迭代器迭代器- -判断两个迭代器是否相等 链表empty_init构造拷贝构造swapoperatorbegin和endinsertpush_backpush_fronterasepop_backpop_frontsizeemptyclear析构 链表的知识回顾 链表是…