首页 > 其他分享 >正则表达式

正则表达式

时间:2022-08-22 17:27:05浏览次数:75  
标签:字符 匹配 正则表达式 linux BRE 三剑客

正则表达式

bash

  • bash是一个命令处理,运行在文本窗口中,并能执行用户直接输入命令
  • bash还能从文件中读取linux命令.称之为脚本
  • bash只能通配符、管道、命令替换、条件判断等逻辑控制语句

linux正则表达式

分两类

1 基本正则表达式:BRE
2 扩展正则表达式:ERE

正则表达式的意思

  • 处理大量的字符串
  • 处理文本

通过特殊符号的辅助,可以让linux管理员快速过滤、替换、处理所需要的字符串、文本、让工作高效

通常linux运维工作,都是面临大量带有字符串的内容如

  • 配置文件
  • 程序代码
  • 命令输出结果
  • 日志内容

且此类字符串内容,我们常会有特定的需要,查找出符合工作需要的特定的字符串,因此正则表达式就出现了

  • 正则表达式是一套规则和方法
  • 正则工作时以单位运行,一次处理一行
  • 正则表达式化繁为简,提高工作效率
  • linux仅爱三剑客(sed、awk、grep)

正则表达式应用非常广泛,应用在如python、java、pertl、linux下普通命令无法使用正则表达式的,只能使用三剑客

通配符是大部分普通命令支持的,用于查找文件或目录,而正则表达式是通过三剑客命令在文件(数据流)中过滤内容的

linux三剑客

文本处理工具,均支持正则表达式引擎

  • grep:文件过滤工具。(模式:pattern)
  • sed:stream editor,流编辑器;文本编辑器
  • awk:linux的文件报告生成器(格式化文本),linux上是gawk

正则表达式分类

linux三剑客主要分两类

  • 基本正则表达式(BRE、basic regular expression)

    BRE对应元字符有 ^$[]*
    
  • 扩展正则表达式

    ERE在BRE基础上,增加(){}?+|等字符
    

基本正则表达式BRE集合

  • 匹配字符
  • 匹配次数
  • 位置锚定
符号 作用
^ 尖角号,用于模式的最左侧,如"^lodbay",匹配以oldboy单词开头的行
$ 美元符,用于模式的最右侧,如"lodboy$",表示已lodboy单词结尾的行
^$ 组合符,表示空行
. 匹配任意一个且只有一个字符,不能匹配空行
\ 转义字符,让特殊含义的字符,现出原形,还原本意,例如 \ .代表小数点
* 匹配前一个字符(连续出现)0次或1次以上,重复0代表空,即匹配所有内容
.* 组合符,匹配所有内容
^* 组合符,匹配任意多个字符开头的内容
.*$ 组合符,匹配以任意多个字符结尾的内容
[abc] 匹配[]集合内的任意一个字符,a或b或c,可以写[a-c]
[^abc] 匹配除了后面的任意字符,a或b或c,表示对[abc]取反

标签:字符,匹配,正则表达式,linux,BRE,三剑客
From: https://www.cnblogs.com/yzqj/p/16613485.html

相关文章

  • 常用正则表达式
    在做项目的过程中,使用正则表达式来匹配一段文本中的特定种类字符,是比较常用的一种方式,下面是对常用的正则匹配做了一个归纳整理。匹配中文:[\u4e00-\u9fa5]英文字母:[a-z......
  • js拆分选择题各选项【javascript将选择题选项通过正则表达式拆分出来】
    最近做题库项目需要添加试题,尤其是选择题逐个添加各选项很繁琐。通过以下正则表达式可以将选择题题目、选项迅速分离出来,并自动添加到选项文本框$("#split").clic......
  • python 使用正则表达式截取字符串
    假设字符串“a={};”要截取包含花括号在内的内容importrepattern=r="=(.+?);"match_bet_list=eval(re.findall(pattern,match_bet_list,re.M)[0])re.M表示在字符......
  • EditPlus 删除空行的正则表达式(Windows)
    http://www.slyar.com/blog/editplus-regexp-blankline.html遇到一个比较大的文本文件需要去除空行,首先想到的自然是正则表达式。偷懒去网上找了几个删除空行的正则表达......
  • PHP正则表达式总结(/g,/i,/U等等)
    https://blog.csdn.net/websites/article/details/19199435 PHP正则表达式总结(\nml,\nm,\un,\xn等等)PHP正则表达式语法一个正则表达式就是由普通字符(例如字符a到......
  • 正则表达式入门(七)量词
    1223334444555556666667777777888888889999999990000000000将排列成直角三角形的数字粘贴到程序中。贪心,懒惰和占有量词本身是贪心的,贪心的量词会首先匹配整......
  • 利用正则表达式排除特定字符串
    阅读目录查找不以baidu开头的字符串查找不以com结尾的字符串查找不含有if的行回到顶部查找不以baidu开头的字符串baidu.comsina.com.cn正则:^(?!baidu).*$ 匹......
  • 一次正则表达式的使用记录
    背景今天老大让我解决一个问题,这个问题的场景是后台管理商品模块编辑商品时,商品信息的商品详情无法回显,但是不是所有商品都不能回显,有的能回显,有的不能回显.定位问......
  • leetcode10-正则表达式匹配
    正则表达式匹配dpdp[i][j]表示s[0:i]和p[0:j]是否匹配。如果i==0&&j==0,那么说明两个字符串都没有选择字符,是true如果j==0,那么说明匹配串没有字符而原字符串......
  • 正则表达式断言和分组捕获以及贪婪
    正则的写法比较多,而且方法也很多,做到提取,替换,都需要不同的正则来一,零宽断言(正向先行断言,负向先行断言,负向后行断言,正向后行断言) 断言:断定正则里面有什么字符 零宽:......