globbing、ERE、BRE的比较

在linux中,对资源进行选择的时候,通常都会使用到通配符(globbing)、基本正则表达式(Basic Regular Expression)或者扩展正则表达式(Extend Regular Expression),大家肯定都疑惑过,它们在使用时,为什么相同的元字符会表示不同的含义呢?答案其实很简单,在bash环境下是不支持正则表达式的,也就是说那些* + .等之类的都是通配符,而真正支持正则表达式的是grep、sed和awk这些工具。所以在我理解看来,它们貌似一样,都是用来匹配字符的。但在文本处理中,都是用正则表达式,比如像awk,sed,是针对文件的内容的;而通配符多用在bash环境下的find,ls,cp等命令中,是用来查找文件名的。

以下是自己总结的三者元字符的区别,空格表示此处无意义


分类


符号


globbing


BRE


ERE


字符匹配


.


单个字符


单个字符


字符匹配


?


单个字符


字符匹配


*


匹配任意长度字符


其前面的字符任意次


其前面的字符任意次


字符匹配


.*


任意长度字符


任意长度字符


字符匹配


[]


指定范围内任意字符


指定范围内任意字符


指定范围内任意字符


字符匹配


[^]


指定范围外任意字符


指定范围外任意字符


指定范围外任意字符


字符匹配


[0-9]


任意一个数字


任意一个数字


任意一个数字


字符匹配


[a-z]


任意一个小写字母


任意一个小写字母


任意一个小写字母


字符匹配


[A-Z]


任意一个大写字母


任意一个大写字母


任意一个大写字母


字符匹配


[:digit:]


任意一个数字


任意一个数字


任意一个数字


字符匹配


[:lower:]


任意一个小写字母


任意一个小写字母


任意一个小写字母


字符匹配


[:upper:]


任意一个大写字母


任意一个大写字母


任意一个大写字母


字符匹配


[:alpha:]


任意一个字母


任意一个字母


任意一个字母


字符匹配


[:alnum:]


任意一个字母或数字


任意一个字母或数字


任意一个字母或数字


字符匹配


[:space:]


一个空格符


一个空格符


一个空格符


字符匹配


[:punct:]


一个标点符号


一个标点符号


一个标点符号


位置锚定


^


锚定行首


锚定行首


位置锚定


$


锚定行尾


锚定行尾


位置锚定


\<


锚定词首


锚定词首


位置锚定


\>


锚定词尾


锚定词尾


次数匹配


\?;?


前面的字符0次或1次


前面的字符0次或1次


次数匹配


\+;+


前面的字符至少1次


前面的字符至少1次


次数匹配


\{m\}


m次,格式\{m\}


m次,格式{m}


次数匹配


至少m次,格式\{m,\}


至少m次,格式{m}


次数匹配


至多n次,格式\{0,n\}


至多n次,格式{0,n}


次数匹配


m次到n次,格式\{m,n\}


m次到n次,格式{m,n}


分组引用


\1,\2分组,格式\(\)


\1,\2分组,格式()

时间: 2024-10-26 08:14:27

globbing、ERE、BRE的比较的相关文章

第二周学习收获

bash基础特性及基础命令(02)_recv bash的基礎特性(1): (1) 命令歷史 history 環境變量: HISTSIZE: 命令歷史記錄的條數: HISTFILE: ~/.bash_history; HISTFILESIZE: 命令歷史文件記錄歷史的條數: history -d OFFSET -c history #: 顯示歷史中最近的#條命令: -a: 手動追加當前會話緩衝區的命令歷史至歷史文件中: 調用歷史中的命令: !#: 重複執行第#條指令: !!: !string: 調

POSIX 正则表达式 BRE与ERE的差异

POSIX 正则表达式 传统上,POSIX 定义了两种正则表达式语法, 即:基本正则表达式(BRE)和扩展正则表 达式(ERE).大多数linux程序至少要符合BRE规范. linux中,不同的程序支持的REGXP也不同,如sed只支持BRE的大部分,这主要是收到速度的限制. sed编辑器要尽可能快的处理数据流中的文本.而grep可以支持ERE,不过要使用-E 选项. gawk使用BRE引擎. 其中, BRE 定义的语法符号包括: . - 匹配任意一个字符. [] - 字符集匹配,匹配方括号中定

globbing

1.globbing是什么? globbing表示通配符,BASH支持文件名通配. 2.globbing常用列表及使用心得 序号 符号 使用心得 1 ? 表示任意一个字符,注意与常规的正则表达式的区别.(正则中?表示可选的) 2 * 表示任意长度任意字符,与正则有差异.比如: globbing中a*表示以a开头,之后是任意长度字符(也就是说*无法作用于前面的a) 而正则中表示a出现>=0次. 从这里可以看出globbing具有一定的局限性,没有正则对模式的强大支持. 3 [...] 支持[],表

shell编程(四)globbing

globbing:文件名通配(整体文件名匹配,而非部分) 匹配模式:元字符 *:匹配任意长度的任意字符 pa*, *pa*, *pa, *p*a* pa, paa, passwd ?:匹配任意单个字符 pa?, ??pa, p?a, p?a? pa, paa, passwd []:匹配指定范围内的任意单个字符 有几种特殊格式: [a-z], [A-Z], [0-9], [a-z0-9] [[:upper:]]:所有大写字母 [[:lower:]]:所有小写字母 [[:alpha:]]:所有字母

烃类蒸汽转化炉的炉膛截面评级程序REFORM-3PC.V7.0+BRE BR&amp;E ProMax 2.0.7047.0 工艺流程模拟软件ProMax

烃类蒸汽转化炉的炉膛截面评级程序REFORM-3PC.V7.0+FRNC-5PC.V8.0 通用加热炉工艺计算软件KBC Petro-SIM Suite v4.0 SP2-ISO 1CD(炼油工艺流程模拟软件)FRNC-5PC.V8.0 通用加热炉工艺计算软件CAESAR II 2013 R1 v6.10 BRE BR&E ProMax 2.0.7047.0 工艺流程模拟软件ProMaxREFORM-3PC.V7.0 reform-3pc是一种烃类蒸汽转化炉的炉膛截面评级程序,可用于氢,氨,羰基

Research and Engineering(BRE or BR&amp;E) ProMax v2.0.7047 1CD

Bryan Research and Engineering(BRE or BR&E) ProMax v2.0.7047 1CD M.E.P.CAD AutoSPRINK Platinum v12.0.51 Win32 1CD MSC.Simufact.Forming.v13.3-ISO 1DVD330\DeskProto.6.3571.Multi-Axis.Edition.rarSchrodinger.KNIME.Workflows.2015-2.ISO-TBE.rarSchrodinger.

通配符 Globbing赏析

什么是 Globing? https://www.techopedia.com/definition/14392/globbing Definition - What does Globbing mean? Globbing is the process of using wildcard characters to request or evaluate sets of files with the same partial names or sets of characters. Users

curl 错误 [globbing] illegal character in range specification at pos

现象 在使用curl 进行ipv6请求的时候 curl -v "http://[1:1::1]/test.html" 发生了一个错误,报错是 [globbing] illegal character in range specification at pos 直接谷歌,发现是在有中括号或大括号的时候,需要添加-g参数 curl 参数 在以下选项中,(H) 表示仅适用 HTTP/HTTPS ,(F) 表示仅适用于 FTP --anyauth 选择 "any" 认证方法

linux正则表达式BRE

是一套处理字符串的柜子和方法,以行为单位对字符串进行处理 通过特殊的符号的辅助,可以快速过滤 替换某些特定的字符串 awk  sed  grep ^word           已word开头 wrod$           已word 结尾 # grep "^I"   hequan            # grep  -i  "^i"   hequan    不区分大小写 # grep  -i  ".$"   hequan .    代表只能