体会正则表达式

学习资料

http://msdn.microsoft.com/zh-cn/library/ae5bf541%28v=vs.90%29.aspx

在线正则表达式匹配网站

http://tool.chinaz.com/regex

小练习

1 [ad]

   匹配a和d任意一个字符

2 [^ad]

   匹配非a非b的字符

3 (ab)

   匹配ab整个单词

4 (^ab)

   匹配以ab开头的任意单词

5 (^ab$)    或者 ^(ab)+$

   匹配ab这个单词

6 Windows (?!95|98|NT|2000) --->原型 (?!pattern)

  匹配“Windows 3.1”中的 “Windows”,但不匹配“Windows 2000”中的“Windows”

7 ^(?!baidu).*$

   查找不以baidu开头的字符串 ^代表非的意思

8 查询包含if的行

  .*if.*

9 查询不包含if的行

    ^([^f]|[^i]f)+$

一种情况是假设字符串中没有f字符,    自然就不可能有if字符串了,这种情况下匹配的字符串中是不可能有if的。第二种情况就是有f字符,但是我们要求此时f的前面不能是i,所以在有f和没有f两种情况都考虑到的情况下,这个正则就应该可以满足所有的情况了。

正则表达式与Linux命令结合

10 ls -l |grep "^d"

列出当前目录下的子级目录

grep "^d" 就是过滤出以d开头的那些行,表示目录,也就过滤出了当前目录中的所有目录

11 ls -F | grep "/$" 

列出当前目录下的子级目录

"$"表示匹配行首,"/$"合起来就表示匹配以/结尾的行,grep "/$" 就是过滤出以/结尾的那些行,/表示目录,也就过滤出了当前目录中的所有目录。

12 ls -l * |grep "^-"|wc -l

当前文件个数

13 ls -l * |grep "^d"|wc -l

当前目录个数

你可能感兴趣的:(正则表达式,qq)