正则表达式基础

1: 正则匹配邮箱
 [a-z0-9_]+@[a-z0-9]+\.[a-z]+
 
2: 基本正则表达式;
 ^ 行首       ^tux(匹配以tux起始的行)
 $ 行性       tux$(匹配以tux结尾的行)
 . 匹配任意一个字符      a.(匹配ab, ad, a1等等)
 [] 匹配包含在[]中的任意一个字符 coo[kl](匹配cool, cook)
 [^] 匹配包含在[^]里面的任意字符  9[^01](不匹配90, 91)
 [-] 匹配指定的任意字符    [1-5](匹配1,2,3,4,5)
 ? 匹配之前的项一次或0次   u?r(匹配r或者ur)
 * 匹配之前的项0次或多次   00*(匹配0, 00, 00000)
 () 创建匹配字符串     ma(tri)?a(匹配maa, matria)
 {n} 匹配之前的项n次     [0-9]{3}(匹配3个数字)
 {n,}匹配之前的项至少n次    [0-9]{3,}(匹配3个数字或3个以上数字)
 {n,m}指定匹配的最小次数和最大次数 [0-9]{3,5}(匹配至少3次,至多5次)
 | 匹配两边的任意一项    one (1st | 2nd)(匹配one 1st, one 2nd)
 \ 转义       a\.b(匹配a.b)
 
3: posix字符类; 底下的这些外围都要加上[];
 [:alnum:]  字母与数字字符  [[:alnum:]]+
 [:alpha:]  字母字符(大写和小写)[[:alpha:]]{4}
 [:blank:]  空格与制表符  [[:blank:]]*
 [:digit:]  数字字符   [[:digit:]]?
 [:lower:]  小写字母   [[:lower:]]{5,}
 [:upper:]  大写字母   ([[:upper:]]+)?
 [:punct:]  标点符号   [[:punct]]
 [:space:]  换行符回车在内的所有空白字符 [[:space:]]+
 
4: 元字符;
 \b   单词边界  \bcool\b 匹配cool.
 \B   非单词边界  cool\B匹配cooladb
 \d   单个数字字符 b\db匹配b2b
 \D   单个非数字字符 b\Db匹配b,b
 \w   单个c语言变量命令支持字符 匹配1或者a, 不匹配&
 \W   单个非c语言变量命令支持字符 匹配&,不匹配1,a
 \n   换行符   \n匹配一个新行
 \s    匹配单个空白字符 x\sx 匹配x x;
 \S   匹配单个非空白字符 x\Sx匹配xax;
 \r   匹配回车   \r匹配回车;
 
5: 匹配所有单词;
 ( ?[[:alpha:]]+ ?) 单词前后都有空格;
 
6: 简单的匹配一个ip地址;
 [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}
 
7: 特殊字符;
 $ ^ . * + { } 等特殊字符如果要匹配到必须使用\来转义;

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