Linux-shell

来源:互联网 发布:139端口入侵 编辑:程序博客网 时间:2024/06/07 10:55

正则表达式:
1、” . “用于匹配换行符之外的任意一个字符,例如:r.t可以匹配rot,rit,但不能匹配root,使用r..t就可以匹配root
grep ‘r..t’ /etc/passwd
2、” * “用于匹配一个字符0次或任意多次,例如ab*可以匹配a、ab、abb等,经常和” . “放在一块使用
grep ‘r*t’ /etc/passwd
grep ‘r.*t’ /etc/passwd
3、”{n,m}” 虽然”*”可用于重复匹配前一个字符,但不能精确地控制匹配的重复次数,”{n,m}”可以更加灵活地控制字符的重复次数。
(1){n} —–匹配前面的字符n次
grep ‘ro{2}t’ /etc/passwd —–r t之间包含两个o
(2){n,} ———–匹配前面的字符至少n次以上(含n次)
grep ‘ro{2}t’ /etc/passwd
(3){n,m}匹配前边的字符n-m次
4、” ^ “用于匹配开头字符
grep ‘^root’ /etc/passwd ——匹配以字母root开始的行

5、” abc"代表以abc为结尾的行。"^grepr.h’ /etc/passwd 代表以r开头h为结尾的行

6、” [] ” 用于匹配方括号里边出现的任一字符,如单项选择题里边的A,B,C,D任意一个,用正则表达式就是[ABCD],如果要匹配任意一个大写字母,则需要使用”-“,写成[A-Z],匹配所有字母则可以写成[A-Za-z],”-“的作用不是充当一个字符。
注意:^如果放在[]里则代表取反,[^A-D], 就比较复杂了
匹配手机号:
第一位一定是1,表示为“^1”,第二位有可能是3或者8,表示为“[38]”,后边连续9个任意数字,表示为“[0-9]{9}”;所以整个表达式就为“^1[38][0-9]{9}”。

7、“ \ ”转义字符,只代表字符本身,021-888要转换为021 888可以用[\ -]。
我们知道 ” .* ” 代表的而是任意长度不包含换行的重复字符,但是如果想要匹配任意长度的点号就需要用到 ” .* “,如果想对” \ “进行转义,就可以这样写:”\”。

8、”\<”和”>”用于界定单词的左边界和右边界
“\

原创粉丝点击