Shell正则

1.Shell正则表达式

​ Linux中常用的有两种正则表达式引擎:基础正则表达式BRE、扩展正则表达式ERE。

	正则表达式也译为正规表示法、常规表示法,是一种字符模式,用于再查找过程中匹配指定的字符。

​ 支持正则表达式的程序:locate | find | vim | grep | sed | awk

1.1 基础正则表达式

字符 描述
. 匹配除换行符\n之外的任何单个字符
* 匹配前面的子表达式零次或多次
.* 匹配任意长度字符
^ 匹配输入字符串的开始位置(行首)
$ 匹配输入字符串的结尾位置(行尾)
^$ 空行
[] 匹配包含在方括号里的任意一个字符或一组单个字符
[^] 匹配不包含在方括号里任意一个字符或一组单个字符
< 匹配单词开头的位置
> 匹配单词词尾的位置
< > 精确匹配
{n} 匹配前面的字符连续出现n次
{n,} 匹配前面的字符至少出现n次
{n,m} 匹配前面的字符至少出现n次与m次之间
( ) 保存被匹配的字符
\d 匹配数字[0-9]。(grep -P)
\w 匹配字母数字下划线[a-zA-Z0-9_]。(grep -P)
\s 匹配空格、制表符、换行符[\t\r\n]。(grep -P)

1.2 扩展正则表达式

​ grep需使用参数-E或使用egrep,sed需使用参数-r。

扩展正则表达式 说明
+ 匹配前面的子表达式一次或多次
匹配前面的子表达式零次或一次,或指明一个非贪婪限定符
| 指明两项之间的一个选择(或)
() 标记一个子表达式的开始和结束位置。
{n} 匹配前面的字符连续n次
{n,} 匹配前面的字符至少n次
{n,m} 匹配前面的字符n到m次

1.3 第二类正则表达式

表达式 说明
[:alnum:] 字符与数字字符
[:alpha:] 字母字符(包括大小写字母)
[:blank:] 空格与制表符
[:digit:] 数字
[:lower:] 小写字母
[:upper:] 大写字母
[:punct:] 标点符号
[:space:] 包括换行符,回车等在内的所有空白
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章