正则表达式 理解和简单使用
正则表达式就像数学中的乘法表一样重要。鸟哥的话,学习方法也和和乘法表一样,需要熟记。因为好多地方都是通用的,这是我自己的理解。暂时先添加一些会的,常用的。后期慢慢补全。
* :星号,表示可以0个数或多个数,0个或者多个在星号前面的那个数。例如 9* ,表示,有0个9或者许多个9.
. :点号,在正则表达式中表示任意字符,但是一个点只占一位,多了需要自己添加。可与 * 一起使用 ,例如 .* 这个表示没有任意字符或者多个任意字符。
^ :这个符号没有名字(有哪位大牛知道了可以告诉我一下 O(∩_∩)O),在【】外面表示匹配行首的字符,如 ^u 表示匹配 以u为首字母的行。在【】里面表示反向选择,如
【^a-z】表示 匹配非小写字母。
$ :这个和上面的想反,匹配行尾,位置与上面也相反,在所要匹配字符的后面,如 u$ 。
上面两个有个特殊一点的例子:要匹配文档中的空行怎么使用?,假设文档为a.txt。
那就使用grep 了。 grep -n ^$ a.txt 本来就是输出空行,没有意义,所以加上 -n 输出一下行号。
\ :这个叫跳脱字符,就是取消符号的特殊意义的作用。如点号 /. 就是让点号只表示一个点。\{\} 也是让这两大括号仅表示大括号。
{}:这个表示范围,例如 r\{4\} 表示 匹配4个r相连的 字符串。r\{4,8\} 范围变成4-8个。如果逗号后没数字,r\{4,\} 这就表示4个以上的r,可以等同于rrrrr* 。