正则表达式

正则表达式基础符号

正则表达式的符号分为基础正则(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]:匹配abc
  • [^abc]:匹配除abc之外的字符
  • [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:匹配非字母、数字或下划线
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值