浅析正则表达式

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

合其他字符所编数出来的,能够匹配符合条件的字符。

正则表达式有基本正则表达式和扩展正则表达式两大类,

下面给大家介绍一下基本正则表达式和扩展正则表达式的一些常用的字符,

基本正则表达式:

^ 锚定行首的符合条件的内容

$ 锚定行尾的符合条件的内容

^$ 表示空白行

. 匹配任意单个字符

* 匹配进挨在其前面的字符任意次

.* 匹配任意长度的任意字符

[] 匹配指定范围内的任意字符

[^] 匹配指定范围外的任意字符

\? 匹配紧挨在其前面的字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

相关文章

一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^d{n}$ 3 至少n位的数字:^d{n,}$ 4 m-n位的数字...
正则表达式非常有用,查找、匹配、处理字符串、替换和转换字符串,输入输出等。下面整理一些常用的正则...
0. 注: 不同语言中的正则表达式实现都会有一些不同。下文中的代码示例除特别说明的外,都是使用JS中的...
 正则表达式是从信息中搜索特定的模式的一把瑞士军刀。它们是一个巨大的工具库,其中的一些功能经常...
一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数...
\ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n”匹配字符“n”。“\n...