shell——正则表达式

3

文章目录


前言

在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。


一、正则表达式

(一)、正则表达式定义

正则表达式(别称):正规表达式、常规表达式
使用字符串来描述、匹配一系列符合某个规则的字符串

(二)、正则表达式与通配符功能的区别

1.通配符功能是用来处理文件名
2.而正则表达式是处理文本内容中字符

(三)、正则表达式组成

1、普通字符

大小写字母、数字、标点符号及一些其他符号

2、元字符

指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式

3、正则表达式层次

基础正则表达式BRE
基础正则表达式是常用的正则表达式部分
除了普通字符外,常见到以下元字符

#. 
#匹配任意单个字符,可以是一个汉字
#[] 
#匹配指定范围内的任意单个字符,示例:[zhou][#0#-#9#]#[]#[a-zA-Z]
#[^] 
#匹配指定范围外的任意单个字符,示例: [^zhou] [^a.z] a.z
如果 . 写在 [ ] 就是 . 不需要转义    转义 . \. 代表转义
$ :匹配字符串结束的位置



次数
*代表前面的字符出现 0 或任意次 
.*任意长度的任意字符(要有)
\+ 一次以上
\{
   n\} 精确匹配 n 
*匹配前面字符任意次
? 01
+1次或多次
{
   n} 匹配n次
{
   m,n} 至少m,至多n次
{
   ,n} #匹配前面的字符至多n次,<=n,n可以为0
{
   n,} #匹配前面的字符至少n次,<=n,n可以为0
提取ifconfig ens33中合法的IP地址——IP地址的通式表达grep -o ‘[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}’

在这里插入图片描述

(四)、扩展表达式

扩展正则表达式元字符:(支持的工具: egrep、 awk)
+:匹配前面子表达式1次以上,例: go+d,将匹配至少一个o,如lgod、good、goood等
? 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Shell编程中的正则表达式是一种用于匹配和操作字符串的强大工具。它使用特定的语法规则来描述和匹配符合某个模式的字符串。在Shell编程中,常用的工具如grep、sed和awk都支持使用正则表达式进行模式匹配和文本处理。正则表达式由普通字符和特殊字符(元字符)组成。普通字符指的是任意字母、数字或其他字符,而元字符具有特殊的意义和功能,用于表示模式中的特定字符或符号。通过使用正则表达式,可以实现字符串的匹配、替换、提取等操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Shell编程之正则表达式](https://blog.csdn.net/weixin_51099370/article/details/124568808)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Linux操作系统——Shell编程 正则表达式](https://blog.csdn.net/weixin_46411355/article/details/125628828)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值