Linux正则表达式的初探

VSCode多文件C语言项目编译实战:从配置到运行 本文详细讲解了如何在VSCode中配置多文件C语言项目的编译环境。通过手把手教学,指导读者创建项目结构、编写代码,并重点深度配置task.json与launch.json文件,实现一键编译和调试所有C文件,解决常见的“undefined reference”等链接错误,提升开发效率。 阅读详情

什么是正则表达式

正则表达式并不是一个工具程序,而是一种字符串处理的标准依据,如果要想用正则表达式来处理字符串,就要用支持正则表达式的工具。正则表达式是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以很容易得达到查找、删除、某特定字符串的处理。通常情况下正则表达式分为基础正则表达式和扩展正则表达式。

正则表达式和bash的通配符(wildcard)是两个完全不同的概念,通配符是代表bash环境接口的一个功能。关于通配符的简单介绍,可以参考另一篇博文”bash环境中的通配符和特殊符号的简单介绍“。

语系对正则表达式的影响

不同的语系,字符的编码顺序可能不同,当对字符操作的时候,就会有不同的结果。

例如。LANG=C时;0 1 2 3 ... A B C D ... Z a b c d ...z

LANG=zh_CN时;0 1 2 3  ... a A b B c C d D ... z Z 如果你要用[a-z]来选择全部的小写字符的时候,就会得到不同的结构。 为了避免上面的这种编码顺序所造成的问题,当我们使用正则表达式的时候,有一些特殊的符号我们可以使用。

特殊字符
代表意义
[:alnum:]
使用英文大小写字符及数字,即 0-9,A-Z,a-z
[:alpha:]
代表任何英文大小写字符,即 A-Z,a-z
[:blank:]
代表空格键与[Tab]按键
[:cntrl:]
代表键盘上的控制按键,即包括CR,LF,Tab,Del...等等
[:digit:]
代表数字,即 0-9
[:graph:]
除了空格符(空格键与[Tab]按键)外的其他所有按键
[:lower:]
代表小写字符,即 a-z
[:print:]
代表任何可以打印出来的字符
[:punct:]
代表标点符号(punctuation symbol),即: : ' ? ! ; : # $
[:upper:]
代表大写字符,即 A-Z
[:space:]
任何会产生空白的字符,包括空格键,[Tab],CR等等
[:xdigit:]
代表16进制的数字类型,包括:0-9,A-F,a-f的数字与字符

基础正则表达式(BRE)字符介绍

RE字符
说明
例子
^string
待搜索的字符串(string)在行首
搜索行首为#的行 $grep '^#' test.txt
string$
待搜索的字符串(string)在行尾
搜索行尾为!的行 $grep '!$' test.txt
.
代表一定有一个任意字符
搜索[e一个任意字符e] $grep 'e.e' test.txt
\
转义字符,将特殊符号转义成一般字符
搜索含有单引号'的行 $grep \' test.txt
*
重复0个到无穷多个前一个RE字符
搜索含有er err errr等等的字符串 $grep 'err*' test.txt
[list]
中括号中只代表一个待搜索的字符
搜索含有agt,agr,agx的行 $grep 'ag[trx] test.txt
[n1-n2]
中括号中列出想要搜索的字符范围
搜索含有数字的行 $grep '[0-9]' text.txt
[^list]
中括号中列出不要的字符串或者范围
搜索的行中含有xx*,但是不能含有xxy $grep 'xx[^y]' test.txt
\{n,m\}
连续n到m个前一个RE字符
搜索含有good或者goood字符串的行 $grep 'go\{2,3\}d' test.txt

一些基础正则表达式例子:

[root@rhel6164 ~]# grep '[^a-z]oo' test.txt
#打印oo前面不含小写字母的行
[root@rhel6164 ~]# grep '[^[:lower:]]oo' test.txt
#因为上面表示的小写字母有可能会因为语系不同编码造成影响,可以用第二个命令
[root@rhel6164 ~]# grep '^$' test.txt 
# 打印出空白行
[root@rhel6164 ~]# grep '.*oo' test.txt
# .*表示任意字符,打印oo前面含有任意字符的行
特别注意*,表示重复前一个0到无穷多次的意思,为组合形态。例如e*就代表空字符或者一个e以上的字符。特别要注意是允许空字符。$grep 'e*' text.txt将会把所有的行都会打印出来。

扩展正则表达式(ERE)字符介绍

RE字符
说明
例子
+
重复一个或一个以上的前一个RE字符
搜索g含有od,good,goood...的字符串的行 $egrep 'go+d' test.txt
?
0个或一个的前一个RE字符
搜索含有gd,god两个字符串的行 $egrep 'go?d' test.txt
|
用或(or)的方式找出来的字符串
搜索含有gd或good两个字符串的行 $egrep 'gd|god' test.txt
( )
找出群组字符串
搜索含有glad或good字符串的行 $egrep 'g(la|oo)d test.txt
( )+
多个群组的判别
搜索含有AxyzxyzxyzC字符串的行 $egrep 'A(xyz)+C' test.txt

链路聚合Eth-trunk以及华为交换机配置实例 链路聚合简介 以太网链路聚合Eth-Trunk简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。 目的: 随着网络规模不断扩大,用户对骨干链路的带宽和可靠性提出越来越高的要求。在传统技术中,常用更换高速率的接口板或更换支持高速率接口板的设备的方式来增加带宽,但这种方案需要付出高额的费用,而且不够灵活。 采用链路聚合技术可以在不进行硬件升级的条件下,通过将多个物理接口捆绑为一个逻辑接口 阅读详情

相关推荐

macOS 发票查验全攻略:从证书导入到Safari调试

本文详细介绍了在macOS上进行发票查验的全流程,包括证书下载、钥匙串访问导入、Safari浏览器调试等关键步骤。重点解决了验证码不显示等常见问题,提供了证书信任设置和开发者工具使用的实用技巧,帮助用户顺利完成税务发票在线查验。

weixin_29204749的博客 546

Linux正则表达式基础

介绍grep,sed,awk这三个命令,而正则表达式作为这三个命令的一种使用方式(命令输出中可以包含正则表达式)。 概念 正则表达式,又被正规表示式、正规表示法、针对表达式、规格表达式、常规表达法(Regular Expression,或regex、regexp、RE)。正则表达式使用单个字符来描述、匹配一系列符合某个句法规则的字符串。在很多编辑器里,正则表达式通常用来检索、替换那些符合某个模...

平步青云的博客 1万+

【FPGA】定点数运算中的位宽优化与截取策略

本文深入探讨了FPGA定点数运算中的核心挑战——数据位宽优化与截取策略。针对定点数在加法、乘法等运算中位宽膨胀的问题,文章详细分析了位宽变化规律,并对比了直接截断、四舍五入和收敛舍入三大截取策略的优缺点及硬件实现方法。通过实战指南与避坑经验,旨在帮助开发者在保证计算精度的同时,高效利用FPGA资源,实现性能与面积的平衡。

weixin_29181861的博客 117

linux 正则表达式基本函数

linux 正则表达式 一些基本函数 (1)int regcomp(regex_t *preg, const char *regex, int cflags); 第一步要使用这个函数 (2)int regexec(const regex_t *preg, const char *string, size_t nmatch,regmatch_t pmatch[], int eflags); 匹配正则

火星上的乡巴佬的专栏 736

【实用工具】QQ自动发消息

程序下载:蓝奏云 源代码: #include<Windows.h> #include<bits/stdc++.h> #include<conio.h> using namespace std; void HideWindow() { HWND hwnd; hwnd=FindWindow("ConsoleWindowClass",NULL); if(hwnd) ShowWindow(hwnd,SW_HIDE); return; } int main() { pri

liuzich的博客 2644

AUTOSAR开发实战:NvM模块如何解决汽车电子中的EEPROM与Flash存储难题?

本文深入探讨了AUTOSAR中的NvM模块如何有效解决汽车电子系统中EEPROM与Flash存储的难题。通过分层架构设计,NvM模块实现了硬件抽象与统一管理,支持数据一致性检查、错误恢复等高级功能,显著提升了存储可靠性和耐久性。文章结合实战案例,详细解析了NvM的核心机制及工程优化方案,为汽车电子开发者提供宝贵参考。

e3f4g5的博客 564

linux正则表达式

Linux学习之正则表达式       正则表达式字符串表示方式一朝不同的严谨程度分为基础正则表达式和扩展正则表达式,   下面我们来先看看基础正则表达式:   经常用到的一些符号       [;alnum:]  表示0-9  a-z   A-Z   [:alpha:]  表示a-z  A-Z   [:lower:] 表示a-z   [:upper:] 表示A

W1365966490的专栏 469

五、2K0300 久久派开发板的GPIO控制与Shell脚本自动化实战

本文详细介绍了基于龙芯2K0300处理器的久久派开发板的GPIO控制方法,通过sysfs文件系统实现LED控制和传感器读取。重点讲解了Shell脚本自动化实战,包括LED闪烁、流水灯效果和传感器数据采集,为物联网项目开发提供完整解决方案。

silver的专栏 687

正则表达式 linux shell

正则表达式 热身 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。 例如 grep, expr, sed , awk. 或Vi中经常会使用到正则表达式,为了充分发挥 shell 编程的威力,需要精通正则表达式。 转载请标明:http://blog.youkuaiyun.com/y

ysdaniel的专栏 9万+

Yolov8轻量级网络:Ghostnet、G_ghost、Ghostnetv2家族大作战(一):华为Ghostnet,超越谷歌MobileNet | CVPR2020

Yolov8引入轻量级网络Ghostnet、G_ghost、Ghostnetv2等,减少最新的深度神经网络的计算成本,引入高效的神经网络结构。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 2568

从开发到生产:Power APP 的应用和编程实践

一旦您在开发环境中完成了应用程序的开发、调试和测试,就可以将其部署到生产环境中供用户使用。在 Power APP Studio 中,您可以选择将应用程序发布到 Power APP 网关或将其嵌入到其他应用程序中。使用 Power APP Studio 内置的调试工具,您可以逐步执行应用程序并查看变量的值,以确保逻辑的正确性。在上述代码中,我们通过将两个文本输入框(TextInput1 和 TextInput2)中的文本转换为数字,并将它们相加,将结果存储在 Result 变量中。

2301_79326510的博客 1504

Linux 正则表达式

不加引号:不会将含有空格的字符串视为一个整体输出, 如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字,路径等可以用。如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来。这时候 grep ‘"$HOME’‘的话,因为内容有单引号,第一个单引号会和倒数第二个单引号匹配,导致找不到正确内容,这里只能用双引号(如有单引号方法可以留言讨论),即grep “”$HOME’"。

桃李不言下自成蹊 7万+

【考研高数-高等数学-基础】第一章 函数、极限、连续

第一章 函数、极限、连续 第二章 导数与微分 第三章 微分中值定理及导数应用 第四章 不定积分 第五章 定积分与反常积分 第六章 定积分的应用 第七章 微分方程 第八章 多元函数微分学 第九章 二重积分 第十章 无穷级数 第十一章 向量代数与空间解析几何及多元微分学在几何上的应用 第十二章 多元积分学及其应用 难题: 极限的递推 微分中值定理的证明题 定积分的不等式和等式的证明 重积分的不等式和等式的证明 线面积分的不等式和等...

刘鑫磊 2034

Linux正则表达式详解

正则表达式: Regual Expression, REGEXP 由一类特殊字符及文本字符所编写的模式,其中有些字符不表示其字面意义,而是用于表示控制或通配的功能; 一、正则表达式的意义 处理大量的字符串 处理文本 通过特殊符号的辅助,可以让linux管理员快速过滤、替换、处理所需要的字符串、文本,让工作高效。 通常Linux运维工作都要面临大量带着字符串的内容, 如: 配置文件 程序代码 命令输出结果 日志文件 且此类字符串内容,我们常会有特定的需要,查找出符合工作需要的特定的字符串,因

向上的"狼"的博客 3150

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Linux 什么是正则表达式

正则表达式,是一个描述一组字符串的模式。它主要用来文本搜索和字符串处理,一个正则表达式匹配单个字符或一个字符串,或者字符串的一部分。 在计算机科学中,正则表达式是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表

魔筝炼药师 1791

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

linux-正则表达式

http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html 1,shell通配符 注意,这里的通配符虽然和正则表达式相似,但是是基于bash解释器解析的,而正则表达式由正则引擎的软件(如awk,grep,sed等)解析,二者完全不同。 通配符字符

gexiaobaoHelloWorld的专栏 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

正则表达式 linux 路径,正则表达式-linux路径匹配

需求注:此正则只用于规范linux路径格式。linux路径支持很多的特殊字符,但是我们应该养成一个好的习惯:只用字母、数字、下划线的组合命名目录或文件。如何使用正则表达式校验一个linux路径符合我们的格式要求呢?格式要求:必须'/'开头字符串只允许字母、数字、下划线正确格式如下/data//home/conf123/data/nginx_conf/错误格式如下nginx_conf//data//...

weixin_30746795的博客 2537

Linux正则表达式

正则表达式(简称“正则”)是一套描述字符串模式的“规则代码”,由普通字符(比如字母a、数字5、标点.)和元字符(具有特殊含义的字符,比如^、$、*)组成。简单说,它就像“文本过滤器”:你告诉它要找的字符串长什么样(比如“以数字开头、以字母结尾”),它就能在一堆文本里精准找出符合要求的内容。元字符说明适用类型匹配行首([]外);取反([]内)BRE/ERE匹配行尾BRE/ERE匹配除\r\n外的任意单个字符BRE/ERE转义字符BRE/ERE匹配前一个字符0次或多次BRE/ERE。

tzhou64452的博客 863

【Linux】正则表达式

正则表达式是一种可供Linux工具过滤文本的自定义模板,Linux工具(如sed、gawk)会在读取数据时使用正则表达式对数据进行模式匹配。 正则表达式使用元字符来描述数据流中的一个或多个字符。它是由正则表达式引擎实现的。正则表达式引擎是一种底层软件,负责解释正则表达式并用这些模式进行文本匹配。

lemon9597的博客 1035

Linux中的正则表达式

​ 2)高级功能:扩展正则表达式(ERE,extended regular expression)​ 1) 基本正则表达式(BRE,basic regular expression)POSIX规范将正则表达式的分为了两种。

sansheng__的博客 639

【Linux正则表达式之grep&egrep】

虽然wc -l和grep -c 都是将匹配的行数显示出来,但是wc -l命令是将过滤出来的条目统计有多少行,grep -c 则是统计匹配的字符串的数量(其中就有两个相同的字符串在同一行,grep -c按照行数输出而不是字符串相匹配的数量输出)由一些特殊字符以及文本字符所编写的模式,其中有些字符不表示其字面意思,而是用于表达控制或通配符的功能。.表示任意一个字符,*表示匹配前一个字符0次或多次,因此放一起,代表匹配所有内容,以及空格。使用"-o"选项,可以只显示被匹配到的关键字,而不是将整行的内容都输出。

qq_47592482的博客 1260

linux 扩展正则表达式

linux 扩展正则表达式在使用的时候配合 grep 命令 需要使用 grep -E 或者egrep 命令使用,0* 0次 没有 grep会把文件内容都显示出来。[oldboy]查找的内容是o l d b o y 而不是oldboy整体。/etc/ssh/sshd_config 排除文件中的#和空。表示的信息0次或1次表示的内容和{0,1}其实是一样的。前一个符号连续出现0次或1次 有或没有。取出文件中的身份证号码。排除文件中的#和空行。

tian830937的专栏 1178

linux查找固定开头y结尾的正则表达式_Linux正则表达式

一、基础正则表达式(一)基础字符列表正则表达式就是一套处理字符串的规则和方法。以行为单位对字符串进行处理,达到快速过滤或者替换字符串的目的。下面是正则表达式的特殊字符:(二)实例1、测试文件[root@localhost project]# cat test.txt I like code,book what do you like my friends like riding,movie2、测...

weixin_31119221的博客 1038

【运维进阶】Linux 正则表达式

文章摘要:本文介绍了Linux正则表达式的基本概念、组成元素(普通字符与元字符)及其应用场景。重点讲解了字符集匹配(如范围匹配[a-z]、否定字符类[^...])、转义字符(\)、特殊字符(如.、|)以及定位符(^、$、\b)的使用方法。通过实际bash命令示例展示了如何利用grep工具进行模式匹配,包括匹配行首/行尾、单词边界等常见操作。文章还列举了非打印字符的匹配方式,为Linux文本处理提供了实用参考。

weixin_74491577的博客 885
上一篇: Linux grep命令
下一篇: Linux readelf命令
Clef
博客等级 码龄12年 125粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值