正则表达式
eg:
1.正则表达式用于描述字符排列和匹配模式的一种语法规则。
用于字符串的模式分割、匹配、查找及替换操作。
2.正则表达式与通配符的区别
正则表达式用来在文件匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式
通配符用来匹配符合条件的文件名,通配符是完全匹配。ls、find、cp这些只能用于shell本身的通配符匹配(《shell基础》)
3.基础正则表达式
元字符 | 作用 |
* | *号前的一个字符匹配0次或任意次 |
. | 匹配除了换行符外的任一字符(类似通配符的?)(".*"匹配任一些字符) |
^ | 匹配行首 eg:^hello 以hello开头的行 |
$ | 匹配行尾 |
[] | 匹配中括号中指定的任—字符 |
[^] | 匹配中括号中没有指定的任一字符 eg:^[^1-9]匹配不是数字为行首的行 |
\ | 转义符。取消后一个字符的特殊含义,变成传统字符 |
\{n\} | 匹配前一个字符恰好出现n次(事实大于n次都在匹配,除非你给两边都加限制字符 eg: a[0-9]\{4\}c 匹配 a4个数c) |
\{n,\} | 前一个字符出现不小于n次 |
\{n,m\} | 匹配前一个字符出现出现n-m次 |
[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