Linux系统中常用正则表达式详解
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑,主要通过正则匹配来获取我们想要的特定部分。
要想真正的用好正则表达式,必须要理解以下元字符:
字符 | 描述 |
---|---|
\ | 转译字符:将将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符 |
\n | 换行符 |
\r | 回车符 |
( ) | 标记一个子表达式的开始和结束位置,供以后使用 |
^ | 匹配行首 |
$ | 匹配尾行 |
* | 匹配尾行 |
? | 匹配0次或者一次 |
I | 匹配0次或者一次 |
\w | 匹配包括下划线的任何单词字符 |
\W | 匹配任何非单词字符 |
. | 匹配除换行符的任意单字符(点) |
{n} | 匹配 n 次,例如,‘o{2}’ 不能匹配 “dog”,但能匹配 “good” |
{n,} | 最少匹配 n 次,例如,‘o{2}’ 不能匹配 “dog”,但能匹配 “gooooood” |
{n} | 最少匹配n 次,最多m次 |
[xyz] | 字符集合,匹配所含的任一字符 |
[^xyz] | 字符集合,匹配未包含的任一字符 |
[a-z] | 字符范围,匹配范围内任意字符,小写字符 |
[^a-z] | 字符范围,匹配不在指定范围内任意字符,除小写字符 |
正则表达式使用程度非常广泛,命令行以及环境都会有他的影子,数量使用会尽可能的提高工作效率,节约宝贵时间。
-
从test.txt文本文件中查找已a开头,中间一个字符,已b结尾的指定文件的行
grep a.b test.txt
其中 "| . | * | ^ | $ | " 这四个字符所有语言都支持,所以这四个是基础的正则表达式。
以下可帮助加深理解记忆:
- [A-Z] 26个大写字母
- [a-z] 26个小写字母
- [0-9] 0至9数字
- [A,B,C,D] 包含A或B或C或D字母
- [a,b,c,d] 包含a或h或t或w字母
- [0,2,4,6] 包含0或2或4或6数字
当你发现自己的才华撑不起野心时,就请安静下来学习吧!