正则表达式中的逆向思维

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式中的逆向思维相关的知识,希望对你有一定的参考价值。

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

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

    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

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

以上是关于正则表达式中的逆向思维的主要内容,如果未能解决你的问题,请参考以下文章

计算机程序的思维逻辑 (88) - 正则表达式 (上)

PHP中的正则

架构思维案例:速学正则

php正则表达式

(90) 正则表达式 (下) / 计算机程序的思维逻辑

php中正则表达式详解