正则表达式中的逆向思惟

    人们的正常思惟都是顺向的,那么逆向思惟呢,特别是初学正则表达式的同窗们,好不容易掌握了正则表达式的用法,再忽然要你用逆向思惟作题,会有不少不适应:正则表达式

    这里拿三道题,来作简单介绍:bash

    一、经典例题取IP:ide

[root@oldboyedu-39 ~]# ifconfig eth0|sed -nr '2s#^[^0-9]+(.*)[a-Z]{5,}.*#\1#gp'ip

10.0.0.200 it

    二、调换/etc/passwd中最后一列和第一列的位置:class

[root@oldboyedu-39 ~]# head /passwd.txt|sed -r 's#(^[^:]+)(.*:)(.*)#\3\2\1#g'sed

/bin/bash:x:0:0:root:/root:rootdb

/sbin/nologin:x:1:1:bin:/bin:bindi

/sbin/nologin:x:2:2:daemon:/sbin:daemonview

/sbin/nologin:x:3:4:adm:/var/adm:adm

/sbin/nologin:x:4:7:lp:/var/spool/lpd:lp

/sbin/nologin:x:4:7:lp:/var/spool/lpd:AzaA

三、

[root@oldboyedu-39 ~]# cat ip.log

10.0.0.1 oldboy

10.0.0.2 oldgirl

10.0.0.3 bingbing

10.0.0.4 tingting

10.0.0.4 oldboy

将属于oldboy的第一列打印出来:

[root@oldboyedu-39 ~]# sed -rn '/oldboy/s#(^[^ ]+).*#\1#gp' ip.log 

10.0.0.1

10.0.0.4

以上是正则表达式的几个逆向思惟的经典案例,欢迎你们拍砖。

相关文章
相关标签/搜索