正则表达式基础符号
正则表达式的符号分为基础正则(BRE)和扩展正则(ERE)。基础正则包括以下符号:
^:匹配行的开头$:匹配行的结尾.:匹配任意单个字符(不包括空行)*:匹配前一个字符0次或多次.*:匹配任意字符(包括空字符)[]:匹配括号内的任意一个字符[^]:匹配不在括号内的任意一个字符
扩展正则(ERE)在基础正则的基础上增加了以下符号:
+:匹配前一个字符1次或多次():表示一个整体,用于分组或反向引用{}:精确控制前一个字符的出现次数?:匹配前一个字符0次或1次
基础正则符号详解
匹配行开头和结尾
^m$:匹配仅包含字符m的行^$:匹配空行(没有任何字符的行)
排除空行和注释行
- 排除空行:
grep -nv '^$' passwd - 排除以
#开头的行:grep -v '^#' sshd_config
匹配任意字符
.:匹配任意单个字符(不包括空行)grep -o . sshd_config | head -5
转义字符
\:用于转义特殊字符,例如匹配以.结尾的行:grep "\.$" sshd_config
匹配重复字符
*:匹配前一个字符0次或多次.*:匹配任意字符(包括空字符)
字符组匹配
[abc]:匹配a、b或c[^abc]:匹配除a、b、c之外的字符[0-9]:匹配数字[a-z]:匹配小写字母[a-zA-Z0-9]:匹配字母或数字
扩展正则符号详解
匹配1次或多次
+:匹配前一个字符1次或多次egrep '0+' re.txt
或操作
|:匹配多个模式中的任意一个,例如排除空行或注释行:grep -vn '^$|^#' passwd
精确匹配次数
a{n,m}:匹配字符a至少n次,最多m次a{n}:匹配字符a恰好n次a{n,}:匹配字符a至少n次a{,m}:匹配字符a最多m次
匹配身份证号
身份证号为18位,前17位为数字,最后一位为数字或X:
egrep '[0-9]{17}[0-9X]$' id2.txt
匹配IP地址
匹配IP地址(简单示例):
egrep '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' ip.txt
Perl语言正则符号
Perl语言正则表达式引入了更多便捷的符号:
\d:匹配数字,等价于[0-9]\s:匹配空白字符(空格、制表符等)\w:匹配字母、数字或下划线,等价于[a-zA-Z0-9_]\D:匹配非数字,等价于[^0-9]\S:匹配非空白字符\W:匹配非字母、数字或下划线
194

被折叠的 条评论
为什么被折叠?



