通配符与正则表达式

通配符和正则表达式 2017-09-30-11:22:31个人原创,允许转载,请注明出处,作者,否则追究法律责任。 通配符适用的地方:shell命令行或者sh

通配符和正则表达式

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

 

标签: 微软