shell编程之正则表达式

正则表达式:由一类特殊的字符以及文本字符所编写的一种模式,处理文本当中的内容
其中的一些字符不表示字符的字面含义,表示控制或者通配的功能
通配符:匹配文件名和目录名,不能匹配文件的内容
正则表达式:可以处理命令结果,文本呢内容都可以进行匹配

通配符: * 匹配了一个或者多个字符
?匹配任意一个单个字符
[]匹配范围内的任意单个字符[0-9] [a-z][A-Z]

正则表达式:
1.基本正则表达式
2.扩展正则表达式
区别仅限于书写上的区别,其他的没有任何不同
基本正则:
字符匹配,元字符
.(英文点)匹配任意的单字符,可以是一个汉字
| 表示转义符 | .,就是一个点
()括号表示分组的意思,()时表示括号的意思
[] 匹配指定范围内的任意单个字符
[0-9] [a-z][A-Z]
ls | grep “[0-9]” 和grep [0-9] 不一样
[^]取反,指定范围外的内容
[[:space]] 包含空格,tab键也算,换行的空格,回车的空格
[[:blank:]]空白字符(空格和tab键)制表符
通配符不能完全匹配大小写,真正的大小写,在正则表达式当中
ls | grep “[a-z]”.txt

正则表达式中表示次数的表达式
*匹配前面的字符任意次,0次也行,无限次也行,有多少匹配多少,没有也可以,贪婪模式
*匹配任意长度的字符,至少要有一次,不包括0次
?匹配前面的字符0次或者1次,可有可无
+匹配前面的字符至少一次,最多可以无数次
{n}匹配前面的字符次数
{m,n}匹配前面的字符,最少N次,最多N次
{,n}匹配前面的字符,最多N次
{n,}匹配前面的字符至少N次

位置锚定:
^:以什么为开头,在模式的左侧
$ :以什么为结尾,在模式的右侧
^root$用于匹配整行,而且整行中只有一个root
^ $:匹配空行(不能有空格)
^ [[:space: ]] $同上的意思
词首锚定:< 或者\b \b123
词尾锚定: >或者\b 123\b
以\b的前后位置,如果前尾都有相同的,输入如上
匹配整个单词

分组

echo abccc | grep "abc|{3\}" 匹配单个字符c三次
echo abcabcabc | grep "\(abc\)\{3\}"匹配adc组三次,必须要连续的
echo abc123abc123abc123 | grep "\(abc)\ {,3\}"

你可能感兴趣的:(正则表达式,linux,运维,服务器)