通配符与正则表达式

Posted 开始认识

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通配符与正则表达式相关的知识,希望对你有一定的参考价值。

通配符和正则表达式

2017-09-30-11:22:31个人原创,允许转载,请注明出处,作者,否则追究法律责任。

通配符适用的地方:shell命令行或者shell脚本中

正则表达式适用的地方:字符串处理时,一般有一般正则和Perl正则。

 

1,通配符

 ﹡ 匹配所有:匹配0个到多个的任意的字符。

 

 

?匹配任意单个字符

 

[ ] 匹配括号内的1个字符

 

 

[ ! ] 匹配 不在中括号内的一个字符 (和正则中的 [ ^ ]作用相似,都是反向选择)

 

当要把以上的* ,?,[ ]当成参数或者字符串处理时,就要限制shell不能当成通配符。这时的处理方法是:加单引号或者用\\(反斜杠转义)

 

 2,正则表达式

 

字符

作用

*

前一个字符匹配0次或任意多次

.

匹配除了换行符以外任意一个字符

^

匹配行首。例如:^helloworld会匹配以helloworld开头的行

$

匹配行尾。例如:helloworld$会匹配以helloworld结尾的行

[ ]

匹配中括号里的任意指定的一个字符,但只匹配一个字符

[^]

匹配除中括号以外的任意一个字符

\\

转义符,取消特殊含义

{n}

表示其前面的字符恰好出现n

{n,}

表示其前面的字符出现不小于n

{n,m}

表示其前面的字符至少出现n次,最多出现m

 

字符匹配

.:匹配任意单个字符

*:匹配其前面一个字符出现任意次

?:匹配其前面的字符1次或0

+:匹配其前面一个字符出现至少一次(在扩展正则表达式中)

   

位置匹配

^:锚定行首

$:锚定行尾

\\<\\b:锚定词首,其后面的任意字符必须作为单词首部出现

\\>\\b:锚定词尾,其前面的任意字符必须作为单词尾部出现

\\B:非单词的开头或结尾

^$:空白行

   

分组匹配用()

(ac)* 匹配ac这个分组出现任意次

\\1:引用第一个左括号以及与之对应的右括号所包括的所有内容,同理还有\\2,\\3

 

以上是关于通配符与正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式与Linux通配符

通配符与正则表达式

shell正则表达式

linux通配符与正则表达式

文件通配符与正则表达式

12.25 -特殊符号,通配符与正则表达式