浅析正则表达式

雪飘落在对面的屋顶上,屋顶像蒙了一条闪着银光的纱巾,美丽极了。雪飘落在树上,树上像缀满了银色的小花。雪飘落在操场上,操场变得像铺满棉花一样白茫茫的一片。

所谓的正则表达式,就是用一类元字符(不表示本身意义,而表示统配或其他意义),组

合其他字符所编数出来的,能够匹配符合条件的字符。
正则表达式有基本正则表达式和扩展正则表达式两大类,
下面给大家介绍一下基本正则表达式和扩展正则表达式的一些常用的字符,

基本正则表达式:

^ 锚定行首的符合条件的内容
$ 锚定行尾的符合条件的内容
^$ 表示空白行
. 匹配任意单个字符
* 匹配进挨在其前面的字符任意次
.* 匹配任意长度的任意字符
[] 匹配指定范围内的任意字符
[^] 匹配指定范围外的任意字符
\? 匹配紧挨在其前面的字0次或1次
\{m,n\} 匹配其前面的字符至少m次,至多n次
\{0,n\} 匹配其前面的字符0-n次
\{m,\} 匹配其前面的字符至少m次
\{m\} 精确匹配m次
\&; 锚定词首
\&; 锚定词尾
\(\) 分组

grep的常用选项

--color=auto 自动为匹配字符添加颜色
-v 反向选取,只显示不符合模式的行
-o 只显示被模式匹配但的字符串,而不是整个行
-i 不区分字符大小写
-A n 显示匹配到的行时,顺便显示其后面的n个行
-B n 显示前面的n行
-C n 显示后面的n行
-E 使用扩展的正则表达式 grep -E = egrep

扩展正则表达式(在这里至列出不同之处)

? 出现了0次或1次 正则表达式为\?
{m,n} 匹配前边字符最少m次,最多n次
() 分组,用法与grep类似
a|b 二选一

1,锚定/etc/passwd文件中行首为root的行
grep “^root” /etc/passwd
2,锚定/etc/passwd文件行尾为sh的行
grep “sh$” /etc/passwd
3,查找空白行
grep “^$” /etc/passwd
4,匹配a后面跟了任意单个字符的行
grep “a.” /etc/passwd
5,匹配a后面跟了任意长度字符的行
grep “a*” /etc/passwd
4,匹配a后面跟了任意长度的任意字符,再跟上b的行
grep “a.*b” /etc/passwd
5,匹配a后面跟了任意个一数字后又跟了任意一个字母的行
grep “a[0-9][a-zA-Z]” /etc/passwd
6,匹配a后面跟了任意一个数字或字母的行
grep “a[0-9a-zA-Z]” /etc/passwd
7,匹配0或1个a后面跟了个b的行
grep “a\?b” /etc/passwd
8,匹配最少一个a,最多3个a后面跟了一个b的行
grep “a\{1,3\}b” /etc/passwd
9,锚定单词admin的行
grep “\&;admin\&;” /etc/passwd
10,匹配自少出现一次ad,最多出现3次ad的行
grep “\(ab\)\{1,3\}” /etc/passwd

本文浅析正则表达式到此结束。人生伟业的建立,不在能知,乃在能行。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
浅析golang 正则表达式

基于xpath选择器、PyQuery、正则表达式的格式清理工具详解

javascript正则表达式 限1-2位整数,或者至多含有两位小数的写法

正则表达式中的 .*? 或 .*+ 的意思

javascript正则表达式标记中/g /i /m的用法,以及实例