1. 程式人生 > >正則表達式中的逆向思維

正則表達式中的逆向思維

正則 表達式

人們的正常思維都是順向的,那麽逆向思維呢,特別是初學正則表達式的同學們,好不容易掌握了正則表達式的用法,再突然要你用逆向思維做題,會有很多不適應:

這裏拿三道題,來做簡單介紹:

1、經典例題取IP:

[[email protected] ~]# ifconfig eth0|sed -nr ‘2s#^[^0-9]+(.*)[a-Z]{5,}.*#\1#gp‘

10.0.0.200

2、調換/etc/passwd中最後一列和第一列的位置:

[[email protected] ~]# head /passwd.txt|sed -r ‘s#(^[^:]+)(.*:)(.*)#\3\2\1#g‘

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

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

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

/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

3、

[[email protected] ~]# 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的第一列打印出來:

[[email protected] ~]# sed -rn ‘/oldboy/s#(^[^ ]+).*#\1#gp‘ ip.log

10.0.0.1

10.0.0.4

以上是正則表達式的幾個逆向思維的經典案例,歡迎大家拍磚。

正則表達式中的逆向思維