扩展正则表达式及应用

正则表达式应用练习 文章目录正则表达式使用练习1、显示/proc/meminfo文件中以大小s开头的行(要求:使用两种方法)2、显示/etc/passwd文件中不以/bin/bash结尾的行3、显示用户rpc默认的shell程序4、找出/etc/passwd中的两位或三位数5、显示CentOS7的/etc/grub2.cfg文件中,至少以一个空白字符开头的且后面有非空白字符的行6、找出“netstat -tan”命令... 阅读详情

第1章 扩展正则表达式

1.1  + 前一个字符连续出现了1次或1次以上

egrep  "0+" clsn.txt  1次或1次以上 >=1

egrep  "0*" clsn.txt  0次或0次以上 >=0

1.1.1 找到文本中的0

[root@znix ~]# egrep  "0+" clsn.txt

my qq num is 49000448.

not 4900000448.

[root@znix ~]# egrep -o  "0+" clsn.txt

000

00000

 

1.1.2 取出文件中的大写字母

[root@znix ~]# grep -o "[A-Z]" clsn.txt

I

I

I

O

L

D

B

O

Y

1.1.3 取出连续出现的大写字母

[root@znix ~]# egrep -o "[A-Z]+" clsn.txt

I

I

I

clsn

1.1.4 显示所有的单词

[root@znix ~]# egrep -o "[A-Za-z]+" clsn.txt

I

am

clsn

teacher

1.2  | 或者

表示找其中的一个或者是另外一个。

[root@znix ~]# egrep "clsn|oldbey" clsn.txt  -o

clsn

clsn

oldbey

找/etc/services 中的两个端口

[root@znix ~]# egrep "3306|1521" /etc/services

mysql           3306/tcp                        # MySQL

mysql           3306/udp                        # MySQL

ncube-lm        1521/tcp                # nCube License Manager

ncube-lm        1521/udp                # nCube License Manager

       找其中的A或者B或者C。

[root@znix ~]# egrep "A|B|C" clsn.txt

my god ,i am not oldbey,but clsn!

       找到12或者56替换成空。

[root@znix ~]# echo 123456|sed -r 's#12|56##g'

34

1.3 () 小括号 反向引用

小括号里面的内容是一个整体,相当于是一个字符 

1.3.1 表示一个整体

[root@znix ~]# egrep "oldb(o|e)y" clsn.txt

I am clsn teacher!

my blog is http://clsn.blog.51cto.com

my god ,i am not oldbey,but clsn!

1.3.2 反向引用

       sed -r 使用扩展正则

[root@znix ~]# echo 123456|sed -r 's#..(..)..#\1#g'

34

       点表示任意一个字符,\2表示第二个括号。

[root@znix ~]# echo 123456|sed -r 's#(.).(..).(.)#\2#g'

34

1.4 {} 大括号(花括号)

0{n,m} 数字0连续出现了至少n次,最多m次

[root@znix ~]# egrep "[a-z]{3,6}" clsn.txt

I am clsn teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://clsn.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.
not 4900000448.
my god ,i am not oldbey,but clsn!

 

[root@znix ~]# egrep "[a-zA-Z]{3,6}" clsn.txt

I am clsn teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://clsn.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.
not 4900000448.
my god ,i am not oldbey,but clsn!
[root@znix ~]#

1.4.1 大括号的不同方法

 0{3,6}   >=3 <=6

 0{3}     ==3

 0{3,}    >=3

 0{,6}    >=0 <=6

1.5  ?

前一个字符连续出现了 0次或1次

1.5.1 环境

[root@znix ~]# cat a.log

good

gd

god

goood

1.5.2 o连续出现0次或1次

[root@znix ~]# egrep "gd|god" a.log

gd
god

[root@znix ~]# egrep "go?d" a.log

gd
god

1.6 正则表达式分类

1.6.1 基础正则

^       以……开头

$       以……结尾

^$     空行

.*      所有

[abc]   表示abc

[a-z]   表示a到z

[A-Z]   表示A-Z

[^abc]  表示排除abc

1.6.2 扩展正则表达式

+      连续出现 1次或1次以上

|       或者

()      小括号里面的内容是一个整体,相当于是一个字符

{}      0{n,m} 数字0连续出现了至少n次,最多m次

?       前一个字符连续出现了 0次或1次

 

第2章 取出eth0网卡的ip地址

2.1 思路

1)先定位 取出第二行

2)取出ip地址

2.1.1 看eth0的内容

[root@znix ~]# ifconfig eth0

eth0      Link encap:Ethernet  HWaddr 00:0C:29:A8:E4:14 

          inet addr:10.0.0.201  Bcast:10.0.0.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fea8:e414/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:86884 errors:0 dropped:0 overruns:0 frame:0

          TX packets:74978 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:14324203 (13.6 MiB)  TX bytes:26220378 (25.0 MiB)

2.2 方法一 sed 去头去尾

用sed命令,将其中不需要显示的,逐步替换。

[root@znix ~]#  ifconfig eth0|sed -n '2p'|sed 's#^.*dr:##g'|sed 's# .*$##g'

10.0.0.201

2.3 方法二sed 反向引用 

反向替换,使用()把ip地址保护起来,\1方向选择,显示出来ip。

[root@znix ~]# ifconfig eth0|sed -nr '2s#^.*dr:(.*)  Bc.*$#\1#gp'

10.0.0.201

       简写?

[root@znix ~]# ifconfig eth0|sed -n '2p'|sed -r 's#^.*dr:(.*)Bc.*$#\1#g'

10.0.0.201 

2.4 方法三

使用把[^0-9.]之外的替换成空格,使用awk取出第一列。

[root@znix ~]# ifconfig eth0|sed -n '2s#[^0-9.]# #gp'|awk '{print $1}'

10.0.0.201

2.5 方法四

awk 指定分隔符,将空格和分号都定为分隔符,然后取列。

[root@znix ~]# ifconfig eth0|sed -n '2p'|awk -F "[ :]+" '{print $4}'

10.0.0.201

第3章 第三关练习题

3.1 如何取得/etiantian文件的权限对应的数字内容,如-rw-r--r--为644,要求使用命令取得644 这样的数字。

 

3.1.1 方法一 反向引用

使用反向引用,保护要取出的内容。

[root@znix ~]# stat /etc/services |sed -nr '4s#^.*\(0(.*)/-.*$#\1#gp'

644

3.1.2 方法二 掐头去尾

两个sed 将不需要的东西替换为空。

[root@znix ~]# stat /etc/hosts |sed -n '4s#^.*(0##gp'|sed 's#/.*$##g'

644

3.1.3 方法三 排除

[^0-7] 除了0到7以外的替换成空格

[root@znix ~]#  stat /etc/hosts |sed -n '4s#[^0-7]##gp'

064400

[root@znix ~]# stat /etc/hosts|sed -nr '4s#[^0-7]+# #gp'

 0644 0 0

 

第4章 特殊符号、通配符

4.1 特殊符号

&&   并且 前面的执行对了执行后面

||   或者 前面命令执行失败了再执行后面的

>>   追加输出重定向

>   标准输出重定向

/    根 路径的分隔符

$    取变量的内容

.    当前目录

..   当前目录的上一级目录

~    家目录

|    管道

!    取反 find awk

#    注释

4.2 通配符

* {}    找出文件

4.3 正则表达式(三剑客grep sed awk使用)

^

$

^$

.*

[abc]   一个整体 a或b或c

        正则表达式认为只要是在中括号里面的就是一样的.

[^abc]  出a或b或c之外

5、正则表达式:从基础到扩展应用 本文从基础到扩展应用,全面介绍了正则表达式的使用方法与技巧。内容涵盖24小时制时间的匹配、子表达式的概念、字符编码的重要性、egrep元字符总结以及不同编程语言(如Perl、PHP和Java)中正则表达式的具体应用。通过实际示例,如日期验证、电子邮件头处理和文本转HTML等场景,帮助读者深入理解正则表达式的构建思路。同时探讨了性能优化策略和常见注意事项,是学习和掌握正则表达式强大功能的实用指南。 阅读详情

相关推荐

12、Linux系统中交换空间扩展与正则表达式应用

本文详细介绍了在Linux系统中使用LVM进行交换空间扩展的步骤,包括关闭交换空间、扩展逻辑卷、配置新交换空间以及优先级设置等内容。同时,深入讲解了正则表达式的基本概念和实际应用,通过邮件列表处理的实例展示了grep、sed、awk等工具结合正则表达式的强大文本处理能力。最后对交换空间监控与配置管理中正则表达式的使用进行了探讨,并给出了系统管理与正则表达式学习的实践建议。

sam99的博客 50

正则表达式扩展应用

至此,关于正则表达式的基本知识就介绍完了,希望同学们多加练习,最终能够熟练地运用所学的关于正则表达式的知识,达到简化字符串处理的目的。指令需要使用两次管线命令。的组合功能来间隔两组字符串,如此一来,可以极大地化简指令。来使用扩展正则表达式,不过一般更建议直接使用。查找开头是 A 结尾是 C 中间有一个以上的。回忆一下,在非扩展正则表达式中,我们使用。在扩展正则表达式中,则可以进一步细分为。执行上述三条指令,比较三者的不同。利用支持扩展正则表达式的。之间类似命令别名的关系。

cdxgwhj的博客 568

48、正则表达式全解析:基础、扩展与实战应用

本文全面解析了正则表达式的基础语法、扩展特性及其在实际场景中的应用。内容涵盖字符匹配、特殊符号使用、数据验证、日志分析、文本替换等常见操作,并通过具体示例帮助读者掌握如何在 shell 脚本中灵活运用正则表达式,提高文本处理效率。

1a2s3d4f5g的博客 136

基本正则表达式与扩展正则表达式的使用以及可能应用到的场景

简单地说,正则表达式是一种符号表示法,用于识别文本模式。在某种程度上,它们类似于匹配文件和路径名时使用的shell通配符,但其用途更广泛。许多命令行工具和大多数编程语言都支持正则表达式,以此来解决文本操作方面的问题。然而,在不同的工具,以及不同的编程语言之间,正则表达式都会略有不同,这让事情进一步麻烦起来。方便起见,我们将正则表达式的讨论限定在POSIX标准中(它涵盖了大多数命令行工具),与许多编程语言(最著名的Perl)不同,这些编程语言使用的符号集要更多一些。

m0_64505752的博客 844

【Linux系统进阶】Linux核心基础正则表达式与扩展正则深入应用与配合grep,sed,awk,egrep

它由一些特殊字符和普通字符组成,可以用来判断一个字符串是否符合某种模式,或者从一个字符串中提取出符合某种模式的子串。在Linux系统中,正则表达式分为基础正则表达式(BRE)和扩展正则表达式(ERE)两种。BRE是最基本的正则表达式,只包含一些基本的特殊字符,例如.、*、+等。、{}、()等,可以更方便地进行匹配和替换操作。正则表达式和扩展正则表达式广泛应用于Linux系统中的各种命令和工具中,例如grep、sed、awk、egrep等。egrep命令则是grep命令的扩展版本,支持更多的正则表达式特性。

走向CTO的路上... 246

12、Linux 系统中交换空间扩展与正则表达式应用指南

本博客详细介绍了在 Linux 系统中如何通过 LVM 扩展交换空间的步骤和方法,包括关闭交换空间、扩展逻辑卷、配置新交换空间及优先级设置等内容。同时,深入讲解了正则表达式的基本概念、元字符使用及其在文本数据处理中的实际应用,结合邮件列表处理示例展示了 grep、sed 和 awk 等工具的实战技巧。适合系统管理员和 Linux 用户提升系统性能管理和自动化处理能力。

v6b7n8m9q0的博客 61

PyCharm旧版本下载全攻略:官方渠道、版本选择与配置避坑指南

在软件开发中,IDE版本管理是影响开发效率与稳定性的关键环节。PyCharm作为主流Python集成开发环境,其版本迭代快速,但并非越新越好。旧版本在兼容性、资源占用和插件生态上往往更适合特定场景。理解版本命名规则与官方下载路径,是安全获取历史版本的核心原理。掌握旧版本的技术价值,在于锁定稳定环境、规避未知缺陷,确保团队协作和遗留项目持续可维护。应用场景覆盖企业依赖锁定、低配硬件优化、教学环境统一等。从基础概念到实操配置,本文提供了完整的旧版本获取、选型与安装避坑思路,帮助开发者快速定位适合自己的PyCha

weixin_33951761的博客 301

State of GPT (ChatGPT 原理及现状介绍)

要用 RLHF 的一个简单的原因就是 RLHF 模型效果更好,下面的图来源于 InstructGPT 论文,PPO (RLHF 算法) 后的模型生成的答案更被人类喜欢。karpathy 认为 RLHF 有用的原因是判别比生成更容易,让标注员去写一些 SFT 的 QA 数据对是比较难的,如果有一个 SFT 模型生成一些数据让标注员判断哪个更好就简单很多。,GPT4 最强,前三个都是 RLHF 模型,其他模型都是 SFT 模型。伯克利做的模型评测榜单。

kebijuelun的博客 3578

扩展正则表达式egrep与awk应用

扩展正则表达式egrep与awk

Mr_XHC的博客 804

Qwen 三代进化全景对比:从 Qwen2.5 到 Qwen3 再到 Qwen3.5

本文对比了阿里巴巴通义千问三代大模型(Qwen2.5、Qwen3、Qwen3.5)的技术演进。18个月内,模型在架构、训练数据和能力上实现显著突破:从纯稠密结构(Qwen2.5)发展为混合注意力架构(Qwen3.5),支持语言从29种扩展至201种,并实现原生多模态融合。关键进展包括引入MoE架构、Gated DeltaNet混合注意力机制(计算效率提升10倍)、以及从独立模态到早期视觉语言联合训练的转变。模型阵容从7个通用尺寸发展为8+个混合架构,最大参数量达397B,上下文窗口扩展至256K(托管版1M

m0_47999117的博客 1万+

避坑指南:华为2288H-V5服务器安装系统时常见的RAID与驱动问题解决方案

本文针对华为2288H-V5服务器在安装系统时常见的RAID与驱动问题,提供了详细的避坑指南。文章深度解析了从BIOS版本兼容性核查、RAID配置实战到驱动加载与集成的全流程,重点解决了安装过程中因RAID控制器驱动缺失或兼容性问题导致的硬盘无法识别等典型故障,帮助用户高效完成系统部署。

weixin_29240711的博客 979

shell脚本-字符串操作,扩展应用,正则表达式

目录字符串处理字符串备用值设置(初值)。shell扩展 expect预期交互正则表达式 字符串处理 字符串截取与切割 三种方法 ${变量名:起始位置 : 长度} expr substr “$变量名字” 起始位置 长度 echo $变量名 | cut -b 起始为位置-结束位置 #截取第一种方法 [root@room13pc37 ~]# a=abcdef [root@room13p...

REVE_HOH的博客 918

python监听海康威视报警服务器

因为我使用海康威视摄像头是自带热成像的所以事件报警会上报两张图片,一张是RGB图像、另一张是热成像图像,因此使用。拿到的就是第一张RGB图像。可以点击测试,会显示。

qq_57018478的博客 1157

linux——正则表达式在linux中的应用(6):基本正则表达式小结与扩展正则表达式

1.常用符号 . 表示任意单个字符 * 表示前面的字符连续出现任意次,包括0次 .*表示任意长度的任意字符,与通配符中*的意思相同 \表示转义符,当与正则表达式中的符合结合时表示符号本身 [ ]表示匹配指定范围内的任意单个字符 [^ ]表示匹配指定范围外的任意单个字符 2.单个字符匹配相关 [[:alpha:]] ,[a-zA-Z]表示任意大小写字母 [[:lower:]] ...

weixin_44056331的博客 294

详解Linux下使用vscode编译运行和调试C/C++

本教程将具体详解使用Visual Studio Code在Linux环境下使用C/C++方法。 GCC C++ 编译器 (g++) 和 GDB 调试器的方法。 GCC是GNU 编译器集合; GDB 是 GNU 调试器。 1.先决条件 安装Visual Studio Code. 安装C++拓展插件。点击在vscode界面最左侧的Extensions图标(打开快捷键:ctrl+shift+X),搜索“C/C++”,点击进行安装。 确保已安装gcc. 一般ubuntu系统会预装gcc.在终端窗口中输入如下命令

休的博客 6241

【数据集】全球大气空气柱平均甲烷(XCH₄)和一氧化碳(XCO)浓度数据集 TROPOMI/WFMD

全球大气空气柱平均甲烷(XCH₄)和一氧化碳(XCO)浓度数据集 TROPOMI/WFMD

WW、forever的博客 388

Linux下元字符、正则表达式、扩展正则表达式应用

Linux下通配符 常用来搜索文件ls,find 符号 意义 * 代表任意长度的任意字符 ? 代表任意单个字符 [] 代表指定范围内的任意单个字符 [-] 如[a-z]代表a-z内的任意单个字符 [^] ...

weixin_34072458的博客 212

【Android Performance】Android CPU调度模式详解:从performance到schedutil的Governor调优指南

本文系统讲解Android/Linux系统中的CPU频率调节策略(Governor),涵盖六大调度模式的底层工作原理:performance(性能优先)、powersave(省电优先)、conservative(保守调频)、ondemand(按需调频)、userspace(手动控制)以及schedutil(调度器驱动)。文中深入拆解每种Governor的调频决策逻辑、上升/下降曲线的差异、适用场景与选型建议,并配以实操命令演示如何查看可用Governor列表、动态切换调度模式以及多Cluster架构下的统一

weixin_44081096的博客 432

扩展Heritrix的FrontierScheduler(正则表达式的应用)

heritrix有多个扩展点,这里我扩展FrontierScheduler,它是一个PostProcessor,它的作用是在Extractor 中所分析的链接加到Frontier中。 FrontierScheduler在org.archive.crawler.postprocessor包下面,我写一个类MyFrontierScheduler来继承FrontierScheduler类,,自己写

1153

基于BERTopic模型的英文20新闻数据集主题聚类及可视化

BERTopic是基于深度学习的一种主题建模方法。BERT是一种用于NLP的预训练策略,它成功地利用了句子的深层语义信息。

Cachel Wood的博客 1460

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

正则表达式(二)扩展应用(结合perl语言)

Perl语言的正则表达式功能非常强大,基本上是常用语言中最强大的,很多语言设计正则式支持的时候都参考Perl的正则表达式。以下面一个例子入门:perl实现匹配一个标量是否是数字。 #!/usr/bin/perl $rely = &amp;lt;STDIN&amp;gt;; #键盘输入 if($rely =~ m/^[0-9]+$/){ print(&quot;is digits&quot;); }else{ prin...

xyh的博客 470

WINCC7.3破解文件

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

Postgres正则表达式性能优化:pg_re2扩展的引入与应用

ClickHouse秉持性能至上理念,推出Postgres扩展pg_re2,旨在提供基于RE2的高速正则表达式功能。

ClickHouseDB的博客 291

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: linux的特殊符号与正则表达式
下一篇: 三剑客之sed&grep
惨绿少年
博客等级 码龄10年 173粉丝 236原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值