ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

正则元字符和扩展元字符的简要说明

2021-05-10 15:03:32  阅读:185  来源: 互联网

标签:字符 简要 grep 匹配 正则 ov love 元字符


特别要注意的几个元字符
*号  
    在脚本中代表所有
    在 egrep 正则中代表 出现 0次至多次
+号在 egrep 正则中代表至少一次
%在正则代表全文
两个尖括号代表一个单词  \<   \>

基本正则表达式元字符
元字符                功能                                示例                                                                与shell中用法对比
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
^                行首定位符                                ^love
$                行尾定位符                                love$
.                匹配单个字符                            l..v                                                                    相当于shell中的?号         
*                匹配前导符0到多次                    ab*love
.*            任意多个字符                                                                                                        相当于shell中的*号,任意多个字符
[]            匹配指定范围内的一个字符        [IL]ove
[ - ]        匹配指定范围内的一个字符         [a-z0-9]ove
[^]            匹配不在指定组内的字符          [^a-z0-9]ove
\                用来转义元字符                        love\.
\<            词首定位符                                \<love
\>            词尾定位符                                love\>
\(..\)    匹配稍后使用的字符的标签        :%s/172.16.130.1/172.16.130.5/
                                                                    :%s/\(172.16.130.\)1/\15/
                                                                    :%s/s\(172.\)\(16.\)\(130.\)1/\1\2\3/5/
                                                                    :3,9s/\(.*\)/#\1/
x\{m\}    字符重复出现m次                        o\{5\}    
x\{m,\}    字符重复出现m次以上                o\{5,\}
x\{m,n\}字符重复出现m到n次                    o\{5,10\}
                    
注意加上引号,避免空格造成错误        
正则中元字符区分英文大小写   shell元字符不区分大小写    

正则中 grep '[^0-9A-Z]oot' /etc/passwd

shell下 ll l[a-z]ve      live lIve love        

=========扩展正则表达式元字符=========
+                                        匹配一个或多个前导字符        [a-z]+ove
?                                        匹配零个或一个前导字符        lo?ve    
a|b                                匹配a或b                                     love|hate    
()                                    组字符loveable|rs               love(able|rs)    ov+  ov+ (ov)+
(..)(..)\1\2            标签匹配字符                          (love)able\1er
x{m}                            字符x重复m次                             o{5    
x{m,}                                字符x重复至少m次                o{5,}
x{m,n}                            字符x重复m到n次
()                                    组字符                                        loveable|rs    love(able|rs)ov+  ov+ (ov)+
(..)(..)\1\2                标签匹配字符                            (love)able\1er
x{m}                                字符重复m次
x{m,}                             字符至少重复m次
x{m,n}                            字符重复m到n次

* ? + {} 都不是为自己活着的,都是为别人活着的,遇到他们就要往前看

POSIX

grep 使用基本元字符   ^ $ . * [] [^] \<\> \(\)  \{\}
egrep 使用扩展字符集  ? + {} | ()
注:grep 也可以使用扩展集中的元字符,仅需要对这些元字符前置一个反斜线
\w 所有字母,称为字符  [a-zA-Z0-9]
\W 所有字母与数字之外的字符,称为非字符
\b 词边界


grep -v 取反
grep -i 忽略大小写
grep -R -r  递归 针对目录
grep -o 只显示一行匹配的部分
grep -A2  -B2 -C2 之后的几行 之前的几行  上下的几行 
grep -n 相对行号,确定行号 可以 vim /etc/passwd +50 直接到

在 () {} 的使用中 grep需要转义 egrep不需要转义 

标签:字符,简要,grep,匹配,正则,ov,love,元字符
来源: https://blog.csdn.net/lepton126/article/details/116595992

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有