基础正则和扩展正则的作用

author author     2022-10-09     783

关键词:

*基础正则表达式:basic regular expression BRE
包括:^ $ . [] [^]
和扩展正则不同的是grep和sed不需要加参数也可以使用

  • ^
    ^d 以d开头的行,例如:ls l|grep "^d" 给三剑客使用
    只查看以d开头的行,正则表达式的意思为,以.....开头,^d就是以d开头
    [[email protected] data]# grep ‘^m‘ oldboy.txt 以m开头的行
    my qq is 49000448
  • $
    以什么什么结尾的行,例如
    grep "m$" yxd.txt 就是以m结尾的行
    [[email protected] data]# grep ‘m$‘ oldboy.txt 如果m后边有空格就是空格结尾,查找不到
  • ^$
    表示空行,什么符号都没有,例如
    grep -n "^$" yxd.txt 因为空格不好显示,加行号可以看出来一般用-v排除
  • .
    代表任意一个字符,文本,符号。不匹配空格,
    grep ‘.‘ yxd.txt一个字符一个字符查找,可配合grep -o 查看匹配过程
    也可以在字符中代替任意一个字符,模糊查找。
    例如:grep "ol.y" oldy.txt
    I am oldboy teacher!
    my god ,i am not olbey
    或者查看全部内容grep "." oldboy.txt 表示查找全部字符,不包括空行
    查找以点结尾的内容grep ".$" oldboy用还原属性
  • *
    前一个文本或字符连续出现0次或0次以上.
    例如 grep ‘0‘ yxd.txt 会把所有文件显示,代表0出现0次或者0次以上,要找0所在的行命令为
    grep ‘0 ‘ yxd.txt 0后加空格
    grep -o ‘bl ‘ oldboy.txt查找bl 前一个字符显示零次,所以星号前相当于出现0次,代表出现0次就是没有
    [[email protected] data]# grep -o ‘bl ‘ oldboy.txt
    bl
    bl
    bl
    grep -o ‘bl‘ oldboy.txt
    b
    b
    bl
    b
    bl
    bl
    grep "god" a.log 代表o出现0次或者多次
    good
    gd
    god
    goood 查找go开头的o出现0次或者多次,"god"=gd的原因为"go{0}d"代表o出现0次,什么也没有,所以有gd
  • .
    重复前边的任意一个符号,也就是所有文本字符,包括空行
    以任意符号开头一直到字母o
    grep ‘^.o‘ yxd.txt
    [[email protected] data]# grep ‘^.o‘ oldboy.txt
    I am oldboy teacher!
    一直到一行最后一个o才结束,贪婪性.所有符号,任何符号,连续出现的字符,有多少匹配多少
    找出以m开头,以m结尾的行
    grep ‘^m.m$‘ oldboy.txt

  • 转义字符,符号,让有特殊意义的符号回归原型,例如:.就表示点

    例如:找出以点结尾的行
    grep ‘.$‘ oldboy.txt
    19.3.7.2
    表示回车
    19.3.8 [ ]

[]在双引号中,如果[]中是特殊字符会有特殊含义,单引号看做普通单位.双引号中的[]里是正则也不会特殊处理br/>正则表达式认为[]里的内容都是相同的[@#$]这里认为@#$为相同符号,加上+合成一个整体例如,不加+号视为[]中只匹配一个字符
[[email protected] ~]# echo ‘#@$#1$$#@[email protected]@@##[email protected]@‘ |egrep -o ‘[$#@]+‘
br/>#@$#
$$#@$$$
@@@##[email protected]@ 1没有中断再到2中断
匹配所有一个字符 grep [abc] yxd.txt 表示查找a或者b或者c [a-z]表示a到z 全部小写字母等[a-Z]大小写
[a-zA-Z0-9],单引号中的[]中的内容没有特殊含义,是一个字符
[[email protected] data]# egrep ‘[0-9]{3,}‘ oldboy.txt -o
49000448
4900000448
19.3.8.1 [^]
表示排除显示,例如:grep ‘[^mno]‘ oldboy.txt,查找除了m或n或o的内容,根据字母的,放前边是取反,放后边查找^例如[mn^]
19.3.8.2 ^[]
以括号里的开头,例如:grep ^[mno] yxd.txt 以m或以n或以o开头的行
19.3.8.3 找以小写字母开头,.!结尾
[[email protected] data]# grep ‘^[a-z].[.!]$‘ oldboy.txt
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
19.3.8.4 不以mn开头
grep ‘^[^mn]‘ oldboy.txxt
grep -v ‘^[mn]‘ oldboy.txt
sed -n ‘/^[^mn]/p‘ oldboy.txt
awk ‘/^[^mn]/‘ oldboy.txt
19.4 扩展正则表达式:
需要用egrep或者grep -E
extended regular expression ERE
包括: | + () {} ?

  • +
    前一个字符连续出现1次或一次以上,排查时只显示字母所在的一行。
    egrep ‘a+‘ yxd.txt和不同的是 只显示带有a的一行
    例如:grep -E ‘[a-z]+‘ oldboy.txt或者grep ‘[a-z]+‘ oldboy.txt取出文件中连续小写的行,加了+就不是一个字符一个字符找,一个单词一个单词找。
    可以把连续出现的东西连成一个整体
    ifconfig eth0|awk ‘NR==2‘|awk -F ‘[ :]+‘ ‘{print $4}‘ +号代表文件多个空格化为连续的一个空格
    [[email protected] data]# grep -E ‘[a-z]+‘ oldboy.txt -o
    am
    oldboy
    teacher
    teach 不加+就是一个字符一个字符匹配,加了是匹配到结束为止,也就是空格或者符号中断,接着匹配
    一般和[]配合使用,取出连续的字符
  • |
    或者的意思egrep "100|200" /etc/services grep需要加e进化才能用
  • ()
    表示一个整体。egrep ‘oldb(o|e)y‘ oldboy 表示的为oldboy|oldbey
    常用于反向引用/后向引用(sed常用)
    例如:echo 123456|sed -r ‘s#(.)#<1>#g‘
    <123456> 引用括号里的内容,防在后边使用1表示括起来的第一个内容
    echo 123456|sed -r ‘s#(34)#<1>#g‘ 只引用34
    echo 123456|sed -r ‘s#(.).(..).(.)#<2>#g‘
    这里的2表示括起来的第几个,引用第几个括号里的内容。
    可以23表示使用引用的第2块和第3块
    反向引用增加内容
    也可以增加内容
    [[email protected] ~]# find /root/ -type f -name ‘yxd.txt‘|xargs sed -ri ‘s#(.)#www.1.org#g‘
    [[email protected] ~]# cat yxd.txt
    www.yxd.org
    www.yxd.org
    www.yx.org
    www.yxd.org
  • ?
    表示重复前一个字符0次或者1次
    例如egrep "go?d" a.log
    gd
    god
    用+号就是egrep "go+d" a.log
    good
    god
    goood
    用就是 grep "god" a.log
    good
    gd
    god
    goood
    19.4.5 {}
    自定义次数或前一个字符重复几次到几次,例如‘wq{1,3}‘代表q这个字符重复1次至3次,包括2次
    前一个字符连续出现最少几次,最多几次,
    例如:0{n,m} 前一个字符至少连续出现n次,最多连续出现了m次
    0{n} 前一个字符连续出现n次
    0{n,} 前一个字符至少连续出现n次
    0{,m} 前一个字符最多连续出现了m次

  • 前一个字符重复几次

前一个字符重复0次或0次以上
+
前一个字符重复1次或1次以上,可以把连续出现的东西连成一个整体

前一个字符重复0次或1次
{}
自定义几次或前一个字符重复几次到几次,例如:‘weeq{1,3}‘q重复1次至3次
*

正则表达式(代码片段)

...件或者目录的,普通命令都支持。find正则表达式分类:基础正则表达式:BRE,常用的正则表达式扩展正则表达式:ERE,对于基础正则表达式的扩充和深化linux文本处理工具:vi/vim编辑器grep(只支持基础正则表达)egrep(支持扩展... 查看详情

shell学习:正则表达式(代码片段)

正则符号包括基础正则符号和扩展正则符号基础正则符号可在sed和grep命令中直接使用扩展正则符号需要使用扩展参数相关扩展参数sed-r—使用扩展正则egrep/grep-E—使用扩展正则fgrep/grep-F—取消解析基础正则基础正则符号符号含义... 查看详情

shell脚本——正则表达式(包含grep详细介绍及应用)(代码片段)

...作用前言案例:使用^和$判断用户输入的是否是数字基础正则表达式元字符基础正则表达式元字符案例扩展正则表达式元字符扩展正则表达式元字符案例正则表达式元字符综合案例三剑客grep详解grep的分类grep的返回值grep的参... 查看详情

正则表达式和扩展正则表达式(代码片段)

一.正则表达式      1. grep文本过滤(模式:pattern)工具:               作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查... 查看详情

正则表达式

...的特殊符号正则表达式知识要点select工具通配符grep命令基础正则表达式扩展正则表达式shell中特殊字符总结。select工具select是ba 查看详情

shell学习:正则表达式(代码片段)

正则符号包括基础正则符号和扩展正则符号基础正则符号可在sed和grep命令中直接使用扩展正则符号需要使用扩展参数相关扩展参数sed-r—使用扩展正则egrep/grep-E—使用扩展正则fgrep/grep-F—取消解析基础正则基础正则符号符号含义... 查看详情

基础正则表达式学习笔记

正则表达式:是一类字符所书写出的模式(pattern)元字符:不表示字符本身的意义,用于额外功能性的描述。分为基本正则表达式和扩展正则表达式基本正则表达式的元字符:字符匹配:.:任意单个字符[]:指定范围内的任意单... 查看详情

java基础-正则表达式

正则表达式入门str.matches("\d+"); 由1到多个数字组成返回true正则表达式是什么?是一个字符串,一个由元字符【预定义字符】和普通字符和量词组成的一个字符串。正则表达式的作用?用来实现字符串的匹配或过滤。正则表达... 查看详情

osix基本正则表达式和扩展正则表达式的比较

POSIX基本正则表达式和扩展正则表达式的比较在读者正觉得正则表达式已经复杂得不能再复杂时,又会发现POSIX规范将正则表达式的实现方法分为了两种:基本正则表达式(BRE)和扩展正则表达式(ERE)。到目前为止,我们所讨... 查看详情

正则基础之环视

1环视基础环视只进行子表达式的匹配,不占有字符,匹配到的内容不保存到最终的匹配结果,是零宽度的。环视匹配的最终结果就是一个位置。环视的作用相当于对所在位置加了一个附加条件,只有满足这个条件,环视子表达... 查看详情

正则表达式和扩展表达式

1:通配符,匹配的是文件名的字符串, 正则表达式,匹配的是文内容的字符2:正则表达式 基本正则表达式 :BRE扩展正则表达式:ERE 元字符分类:字符匹配,匹配次数,位置锚定,分组 man 7regex 可以查... 查看详情

正则和grep——再做正则就去死

grep文本过滤工具基本正则表达式grep语法基本正则表达式的元字符次数匹配位置锚定分组扩展正则表达式基本正则表达式的元字符次数匹配位置锚定分组或者grep的介绍linux上文本处理三剑客grep:文本过滤(模式:pattern)作用:... 查看详情

扩展正则表达式

扩展正则表达式事实上,一般实验者只需要熟悉基础的正则表达式就足够了。不过有时候为了简化命令操作,了解一些使用范围更广的扩展表达式,会更加方便。一、简单对比正规表示法:$grep-v‘^$‘regular_express.txt|grep-v‘^#‘需... 查看详情

匹配文件名开头和文件扩展名的正则表达式

】匹配文件名开头和文件扩展名的正则表达式【英文标题】:Regularexpressiontomatchstartoffilenameandfilenameextension【发布时间】:2008-10-0823:42:27【问题描述】:匹配以“Run”开头且文件扩展名为“.py”的字符串(在本例中为文件名)的... 查看详情

sedgawk介绍与正则表达式-----------(扩展的正则表达式)

7.6扩展的正则表达式        POSIXERE模式包括某些Linux应用程序和工作使用的其他符号。gawk程序能够识别ERE模式,但是sed编辑器。sed编辑器和gawk程序的正则表达式引擎存在差异。gawk程序可以使用大部... 查看详情

扩展正则语言框架中正则语言的算法复杂度

】扩展正则语言框架中正则语言的算法复杂度【英文标题】:AlgorithmiccomplexityofRegularLanguagesinExtendedRegularLanguageframeworks【发布时间】:2013-12-2923:29:43【问题描述】:我在形式语言方面有一点背景,最近我发现Java和其他语言使用所... 查看详情

正则表达式扩展和语言

】正则表达式扩展和语言【英文标题】:Regexextensionandlanguage【发布时间】:2016-12-0218:42:53【问题描述】:我正在研究验证一些文件名。但无法找出正确的正则表达式文件名可以是任何东西,但需要检查文件名是否以结尾_下划线e... 查看详情

java提取文本文档中的所有网址(小案例介绍正则基础知识)(代码片段)

正则表达式基础以及Java中使用正则查找定义:正则表达式是一些用来匹配和处理文本的字符串正则的基础(先大致了解下)1.正则表达式的作用查找特定的信息(搜索)替换一些文本(替换)2.正则基础知识1.元字符.匹配除换行... 查看详情