正则表达式的符号基本使用说明

***基本正则表达式(可支持grep,sed,awk等shell工具)

* 0个或多个在*字符前面的那个普通字符
. 匹配任意字符
^ 匹配行首,或后面字符是非
$ 匹配行尾

[]匹配字符集合
\ 转义符,屏蔽一个元字符的特殊意义
\<\> 精确匹配符号
\{n\} 匹配前面字符出现n次
\{n,\} 匹配前面字符至少出现n次
\{n,m\} 匹配前面字符出现n~m次

注意:符号*前面必须至少有两个字符(当符号*后面没有字符时)或必须*前面至少有一个字符(当符号*后面至少有一个字符时)才有意义
符号.前后必须同时有字符才有意义
[]使用时前面

1.符号* 0个或多个在*字符前面的那个普通字符
例子 hel*o
hel*o 可以是heo,helo,hello,helllo可以可以出现0到无穷次


2.字符 . 匹配任意字符
例子 .7
.7 首先这是两个字符,其中后面一个字符是7,而前面一个字符是任意一个键盘上可以输出的字符
...7 这是4个字符,最后一个还是7,前面3个字符是任意一个键盘上可以输出的字符


综合
hel*o. 这个表示heo后面任意一个字符
helo后面任意一个字符
hello后面任意一个字符

hel.*o 这个就表示以hel开头,o结尾的任意字符都可以匹配


3.符号^ 匹配行首,或后面字符是非
例子 ^cloud
^cloud 这个表示行首的字符是cloud的行都会被匹配


综合
^h.*o 表示必须以行首h开头以o结尾中间任意字符

4.符号$ 匹配行尾
例子 hel$ 表示必须以hel作为行尾

综合 ^h.*o$ 表示以h为行首以o为行尾中间任意字符
^$ 表示为空
^hjo$ 表示行首位h,行尾为o中间为j进行匹配,也就是说这一个只有hjo才会被匹配

5.符号[] 匹配字符集合
例子1.穷举
[123456789] 表示匹配任意一个数字

例子2.-的使用(范围)
[1-9] 表示匹配任意一个数字
[a-z] 匹配任意一个小写字母
[A-Z] 匹配任意一个大写字母

[^]
^在[]里表示取反
例子[^b-d] 表示匹配不在b到d之间的所有字符

综合
[A-Za-z] [A-Za-Z]* 匹配所有的英文单词
[A-Za-z1-9] [A-Za-z1-9]* 匹配所有的英文单词和数字

6.符号\ 转义符,屏蔽一个元字符的特殊意义
\* 匹配*字符,

7.符号\<\> 精确匹配符号
屏蔽<>
例子\<the\> 匹配the单词而不是含有the的单词或行

8.\{\}系列符号 匹配前面字符重复出现的次数
\{n\} 匹配前面字符出现n次
例子
a\{4\} 匹配aaaa

\{n,\} 匹配前面字符至少出现n次
例子
a\{2,\} 匹配aa,aaa,aaaa ......

\{n,m\} 匹配前面字符出现n~m次
a{2,4\} 匹配aa,aaa,aaaa

综合
[a-z]\{5\} 匹配5个小写字母

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

扩展正则表达式(支持awk,perl等工具)
? 匹配0个或1个在其之前的那个普通字符
+ 匹配1个或多个在其之前的那个普通字符
() 表示一个字符集合或用在表达式中
| 表示“或”,匹配一组可选的字符

1.符号?
例子
jo?b 匹配job joob

2.符号+
例子
s+eu 匹配sseu ssseu......

3.符号() 和符号| 表示一组可选字符的集合
例子
re(a|e|o)d 匹配 read reed reod

4.符号|
re1|re2|re3...


+++++++++++++++++++++++++++++++++++++++++++++++

通配支持bash shell)
符号* 表示任意位的任意字符
符号? 表示一个任意字符
符号^ 表示取反
符号[] 表示字符集合
符号[^] 表示取反字符集合
符号{} 表示一组表达式的集合

1.符号*
例子 ls a* 查看所有以a开头的文件

2.符号?
例子
ls a? 查看以a开头的包含2个字符的文件

3.符号[]
例子
ls a[1-10] 查看a1.a2...a10
ls a[a-z]* 查看以a开头的含有小写字母的文件

4.符号[^]
例子
ls a[^1-2] 查看不含有a1,a2的所有文件

5.符号{} 例子 ls a{[^1-2],a?,b*} 查看不包含a1,a2,的所有文件 或查看文件a和aa,或查看所有以b开头的文件

相关文章

一、校验数字的表达式 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...