是什么
用于描述字符排列和匹配模式的一种语法规则。他主要用于字符串的模式分割,匹配,查找和替换。
正则表达式与通配符
通配符
- * 匹配任意内容
- ? 匹配任意一个内容
- [] 匹配括号中的一个字符
正则表达式
| 元字符 | 作用 |
|---|---|
| * | 前一个字符匹配0次或任意多次 |
| . | 匹配除了换行符外的任意一个字符 |
| ^ | 匹配行首 |
| $ | 匹配行尾 |
| [] | 匹配中括号中指定的任意一个字符,只匹配一个字符 |
| [^] | 匹配除中括号中的字符以外的任意一个字符 |
| 转义符。 | |
| \{n\} | 表示其前面的字符恰好号出现n次,配合定界符使用 |
| \{n,\} | 表示其前面的字符出现不少于n次 |
| \{n,m\} | 表示其前面的字符至少出现n次,最多出现m次。 |
# 匹配所有内容
.*
# 匹配在s和d之间有任意字符
s.*d
# 匹配空白行
^$
# 查找不用数字开头的行
grep "^[^0-9]$" a.txt
# 查找使用.结尾的行
grep "\.$" a.txt
正则表达式与通配符
- 正则表达式用来在文件中匹配合符合条件的字符串,正则是包含匹配。grep,awk,sed等命令可以支持正则表达式。
- 通配符用来匹配符合条件的文件名,通配符时完全匹配。ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配。