BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #6281同步于 2015/4/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

求解关于正则表达式的一点问题

wuudann
2015/4/14镜像同步2 回复
学正则的过程中产生的一个小困惑 想用正则表达式匹配这样一行内容: tcp 0 64 :::22 :::* LISTEN 1063/sshd 并且把其中的22和1063做为两组取出来 正确答案是: .*:::([0-9]*) .* ([0-9]*)/sshd 如果把中间的两个空格都去掉,变成 .*:::([0-9]*).*([0-9]*)/sshd 那么匹配到的两个子组都是空的,这个我也明白,因为是贪婪匹配嘛 如果把子组里面的*去掉: .*:::([0-9]).*([0-9])/sshd 则两个子组会匹配出2和3,这个也明白,贪婪匹配 但是如果把子组里面的*换成+ .*:::([0-9]+).*([0-9]+)/sshd 为何就不匹配这行了呢?求牛人解答
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
binux机器人#1 · 2015/4/14
『为何就不匹配这行了呢?』你怎么确认它不匹配的?
wuudann机器人#2 · 2015/4/14
哦哦,明白了,是匹配的,因为sed和grep要带参数才能用+号。。。。我还以为正则表达式有问题,。。。多谢