Linux正则表达式
标签: Linux正则表达式 博客 51CTO博客
2023-04-12 18:24:00 224浏览
ed编辑器内部有一些特殊含义的字符。在ed中规定,当有些字符出现在搜索模式中或s命令的左边时,具有特定的含义。这些有特定含义的字符称之为“元字符”。而使用元字符进行匹配的模式称为“正则表达式(Regular Expressions)”。正则表达式是一种说明查找匹配模式的语法基于ed的正则表达式是贯穿于整个UNIX系统的。在UNIX许多命令中,使用的匹配模式及shell文件名匹配方式都是采用正则表达式完成。
基本正则表达式中元字符的含义
c 任何非特殊字符c都与自身匹配
\c 关闭字符c的特殊含义
^ 当模式以^开始时,匹配行首
$ 当模式以$结束时,匹配行尾
· 匹配任何单个字符 [...]匹配…中的任何一个字符,像a-z这样的字符范围是合法的
[^...]匹配不在…中的任何一个字符,像a-z这样的字符范围是合法的
r* 匹配0个或多个r,其中r为一个字符、.或[...] (.* 匹配所有内容)
\(...\) 标记正则表达式作为一个整体
/\{n,m\} 重复次数匹配符,x\{n,m\}表示其前面的字符x至少出现n次,最多出现m次,如:
/m\{3\}/ 要匹配字母m出现次数为3次的文本
/m\{5,\}/ 要匹配字母m出现次数至少5次的文本
/m\{3,5\}/ 匹配字母m出现次数在3至5次的文本。
/[1][3-8][0-9]\{9\}/ 匹配11位手机号码
/s\{2\}\|o\{2\}/ 匹配连续两个s或o
*等价于 {0,}
基本正则表达式匹配模式
/^$/ 空行,即只有换行
/./ 非空行,即至少包含一个字符
/^/ 所有行 ; /thing/ 包含thing的行 /^thing/ 行首为thing的行;/thing$/ 行尾为thing的行
/^thing$/ 只包含thing的行
/thing.$/ 行尾为thing加上任意一个字符
/thing\.$/ 行尾为thing.
/\/thing\// 包含/thing/的行
/[tT]hing/ 包含Thing或由thing的行
/thing[0-9]/ 包含thing后跟一个数字的行
/thing[.^0-9]/ 包含thing后跟一个非数字的行
/thing[0-9][^0-9]/ 包含thing跟一个数字及一个非数字的行
/thing 1.*thing2/ thing 1后为任意字符申,然后为thing2的行
/^thingl. *thing2$/ 行首为thing 1,行尾为thing2的行
/^[a-z][0-9]$/ 匹配一个由一个小写字母和一位数字组成的字符串,比如"z2"、"t6"或"g7",但不是"ab2"、"r2d3" 或"b52"
/[^a-z]/ 除了小写字母以外的所有字符
/[0-9][0-9]$/ 要求第一个字符不能是数字,然后是一个数字结尾
/[a-zA-Z]/ 第一个字符不是字母
/^[0-9]\{3,\}[a-z]/ 匹配最少用连续3个数字开头的字符串
/[^\\\/\^]/ 除了(\)(/)(^)之外的所有字符
扩展正则表达式中元字符的含义
- 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。 等价于 {1,}。 ? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 。等价于 {0,1}。 (...) 匹配圆括号中的模式并作为一个整体匹配 \< 匹配一个单词的开始。 \> 匹配一个单词的结束。 \w 匹配字母、数字、下划线。等价于'[A-Za-z0-9_]'。 \W 匹配非字母、数字、下划线。等价于 '[^A-Za-z0-9_]'
- egrep等价于grep -E
- 支持扩展正则表达式 grep "s\{2\}\|o\{2\}" /etc/passwd egrep "s{2}|o{2}" /etc/passwd
好博客就要一起分享哦!分享海报
此处可发布评论
评论(0)展开评论
展开评论
