您的位置:首页 > 运维架构 > Shell

shell正则表达式介绍

2012-11-22 15:13 225 查看

本章内容包括:

• 匹配行首与行尾。

• 匹配数据集。

• 只匹配字母和数字。

• 匹配一定范围内的字符串集。



7.1 使用句点匹配单字符

7.2 在行首以^匹配字符串或字符序列

7.3 在行尾以$匹配字符串或字符

可以说$与^正相反,它在行尾匹配字符串或字符, $符号放在匹配单词后。假定要匹配以

单词t r o u b l e 结尾的所有行,操作为:

t r o u b l e $

类似的,使用1 d $返回每行以 1 d结尾的所有字符串。

如果要匹配所有空行,执行以下操作:

^ $

具体分析为匹配行首,又匹配行尾,中间没有任何模式,因此为空行。

如果只返回包含一个字符的行,操作如下:

^ . $

不像空白行,在行首与行尾之间有一个模式,代表任意单字符

7.4 使用*匹配字符串中的单字符或其重复序列

7.5 使用\屏蔽一个特殊字符的含义

有时需要查找一些字符或字符串,而它们包含了系统指定为特殊字符的一个字符。什么

是特殊字符?一般意义上讲,下列字符可以认为是特殊字符:

假定要匹配包含字符“ .”的各行而“, ”代表匹配任意单字符的特殊字符,因此需要屏蔽

其含义。操作如下:

\ .

上述模式不认为反斜杠后面的字符是特殊字符,而是一个普通字符,即句点。

假定要匹配包含^的各行,将反斜杠放在它前面就可以屏蔽其特殊含义。如下:

\ ^

如果要在正则表达式中匹配以 * . p a s结尾的所有文件,可做如下操作:

\ * \ . p a s

即可屏蔽字符*的特定含义

7.6 使用[]匹配一个范围或集合

7.7 使用\{\}匹配模式结果出现的次数

使用*可匹配所有匹配结果任意次,但如果只要指定次数,就应使用 \ { \ } ,此模式有三种

形式,即:

pattern\{n\} 匹配模式出现n次。

pattern\{n,\} 匹配模式出现最少 n次。

pattern\{n,m} 匹配模式出现n到m次之间,n , m为0 - 2 5 5中任意整数。

请看第一个例子,匹配字母 A出现两次,并以B结尾,操作如下:

A \ { 2 \ } B

匹配值为A A B

匹配A至少4次,使用:

A \ { 4 , \ } B

可以得结果 A A A A B或A A A A A A A B,但不能为 A A A B。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: