Shell编程之正则表达式

1.正则表达式

.正则表达式是用于描述字符排列和匹配模式的一种语法规则。
它主要用于字符串的模式分割,匹配,查找及替换操作。

.正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。
grep ,awk,sed 等命令可以支持正则表达式。
通配符用来匹配符合条件的文件名,通配符是完全匹配,所以只能使用Shell自己的通配符来匹配

基本正则表达式:
*前一个字符匹配0次或者任意次
. 匹配除了换行符外任意一个字符
" ^ " 匹配行首, “$” 匹配行尾
“[]” 匹配中括号中指定的任意一个字符,只匹配一个字符
“” 转义符
“[^]” ^在中括号中代表取反,匹配除中括号的字符以外的任意一个字符
“{n}” 表示其前面的字符恰好出现n次,需要加定界符,否则取出来的不一定只有三个
“[n,]” 表示其前面的字符出现不小于n次
“[n,m]” 表示其前面的字符至少出现n次,最多出现m次

正则表达式:

* 前一个字符匹配0次或者任意次

例如:
“a*” #匹配所有内容,包括空白行,因为a可以为0次
“aa*” #匹配至少包含一个a的行
“aaa*” #匹配至少包含两个连续a的字符串
“aaaaa*” #匹配至少包含四个连续a的字符串

. 匹配除了换行符外任意一个字符

“s…d” #会匹配在s和d这两个字母之间一定有两个字符的单词
"s.d" #会匹配在s和d字母之间有任意字符
".
" #会匹配所有内容

" ^ " 匹配行首, “$” 匹配行尾

eg
“^M” #匹配以M开头的行
“nKaTeX parse error: Expected 'EOF', got '#' at position 5: " #̲匹配n结尾的行 "^” #匹配空白行

“[]” 匹配中括号中指定的任意一个字符,只匹配一个字符

eg
“s[ao]id” #匹配s 和id 中为a 或者o
“[0-9]” #匹配任意一个数字
" ^ [a-z]" #匹配小写字母开头的行

“[^]” ^在中括号中代表取反,匹配除中括号的字符以外的任意一个字符

eg
[a-z]” #匹配不用小写字母开头的行
[a-zA-Z]” #匹配不用字母开头的行

“” 转义符

eg
“.$” #匹配使用 . 结尾的行

“{n}” 表示其前面的字符恰好出现n次,需要加定界符,否则取出来的不一定只有三个

eg
“a{3}” #匹配a字母连续出现三次的字符串
“[0-9]{3}” #匹配包含连续的三个数字的字符串

“[n,]” 表示其前面的字符出现不小于n次

eg
" ^ [0-9]{3,}[a-z]" #匹配最少用连续三个数字开头的行

“[n,m]” 表示其前面的字符至少出现n次,最多出现m次

eg
“sa{1,3}i” #匹配在字母s和i之间有最少一个a,最多三个a

[0-9]{4}-[0-9]{2}-[0-9]{2} #匹配日期格式YYYY-MM-DD

[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3} #匹配IP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值