标签:正则表达式
正则表达式是一种文本处理方法。基本正则表达式是最早制订的正则表达规范;有以下几种元字符:
^
:用来匹配行首的字符,表示行首字符必须为^
后面的那个字符;例如:#! /bin/bash
#表示通过ls 命令列出 /etc 目录中的文件,然后将执行结果传递给 grep 命令,
#通过 grep 命令筛选出以字符 po 开头的文件;
str=`ls /etc | grep "^po"`
echo "$str"
$
:用来匹配行尾字符;例如:#! /bin/bash
#列出 /etc 目录中以 conf 结尾的文件名
str=`ls /etc | grep "conf$"`
echo "$str"
.
:用来匹配任一单个字符(包括空格,但不包括换行符\n
);例如:#! /bin/bash
#列出包含字符串 test 以及另外一个字符的文件名
str=`ls /etc | grep "test."`
echo "$str"
*
:用来指定前面的一个字符必须重复出现任意次(包括 0 次);例如:#! /bin/bash
#筛选以字符 L 开头,紧跟着 1 个字符 i,任意个字符 n 的文件名
str=`ls /etc | grep "^Lin*"`
echo "$str"
[]
:用来指定一个字符集;例如:#! /bin/bash
#筛选出以字符 L 开头,紧跟着 1 个字符 i,接着 1 个字符为小写字母的文本行
str=`ls /etc | grep "^Li[a-z]"`
echo "$str"
[^]
:表示不匹配其中列出来的任意字符;例如:#! /bin/bash
#筛选出以字符 L 开头,紧跟着 1 个字符 i,接着 1 个字符为不小写字母的文本行
str=`ls /etc | grep "^Li[^a-z]"`
echo "$str"
扩展正则表达式支持基本正则表达式的元字符,但是在它的基础上进行扩展,即除了支持基本正则表达式的元字符外,还会支持其他元字符;
+
:限定符+
基本上与*
类似,但是限定符+
限定前面字符必须至少出现一次(即不能为 0);例如:#! /bin/bash
#筛选以字符 L 开头,紧跟着 1 个字符 i,至少出现 1 个字符 n 的文件名
str=`ls /etc | grep "^Lin+"`
echo "$str"
?
:用来限定前面字符最多只出现 1 次(包括 0 次);例如:#! /bin/bash
#筛选以字符 L 开头,紧跟着 1 个字符 i,最多出现 1 个字符 n 的文件名
str=`ls /etc | grep "^Lin?"`
echo "$str"
|
与圆括号()
:竖线|
表示正则表达式之间“或”的关系,圆括号()
表示一组可选值的集合;例如:#! /bin/bash
#筛选含有字符 Lin、Linux 或 study 的文本行
str=`ls /etc | grep "(Lin|Linux|study)"`
echo "$str"
\d
:匹配0~9
之间的任意一个数字字符,等价于[0-9]
;\D
:等价于[^0-9]
;\s
:匹配任何空白字符,包括空格、制表符以及换页符,等价于[\f\n\r\t\v]
;\S
:等价于[^\f\n\r\t\v]
;标签:正则表达式
原文地址:http://blog.csdn.net/chenhanzhun/article/details/44131891