Chinaunix

标题: 请教大家一个入门级的问题 [打印本页]

作者: ChiangWei    时间: 2010-12-30 15:16
标题: 请教大家一个入门级的问题
[root@Centos-simplify ~]# echo "192.168.10.1"|sed -e 's/\(.*\)\..*/\1/'
192.168.10

小弟有个疑问,为什么得到的结果不是192或者192.168呢?我觉得也一样符合替换要求啊
作者: expert1    时间: 2010-12-30 15:28
和正则表达式的贪婪性有关吧?
作者: jason680    时间: 2010-12-30 15:34
本帖最后由 jason680 于 2010-12-30 15:37 编辑
[root@Centos-simplify ~]# echo "192.168.10.1"|sed -e 's/\(.*\)\..*/\1/'
192.168.10

小弟有个疑问, ...
ChiangWei 发表于 2010-12-30 15:16


置顶 "shell基础十二篇"

shell基础六七:命令执行顺序(||及&&,{}及())和正则表?
http://bbs.chinaunix.net/forum/viewtopic.php?t=445229&highlight=wingger

正则表达式语法
http://bbs.chinaunix.net/forum/viewtopic.php?t=149723

?
当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。
非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。
例如,对于字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。
作者: linuxboy823    时间: 2010-12-30 15:37
[root@Centos-simplify ~]# echo "192.168.10.1"|sed -e 's/\(.*\)\..*/\1/'
192.168.10

小弟有个疑问, ...
ChiangWei 发表于 2010-12-30 15:16



    .*\. 应该是正则贪婪性到最后一个点
作者: yinyuemi    时间: 2010-12-30 15:38
echo "192.168.10.1"|sed -e 's/\([0-9]\{3\}\)\..*/\1/'
192
作者: ashlv    时间: 2010-12-30 15:38
Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
  
Reluctant 数量词
X?? X,一次或一次也没有
X*? X,零次或多次
X+? X,一次或多次
X{n}? X,恰好 n 次
X{n,}? X,至少 n 次
X{n,m}? X,至少 n 次,但是不超过 m 次
  
Possessive 数量词
X?+ X,一次或一次也没有
X*+ X,零次或多次
X++ X,一次或多次
X{n}+ X,恰好 n 次
X{n,}+ X,至少 n 次
X{n,m}+ X,至少 n 次,但是不超过 m 次
作者: L_kernel    时间: 2010-12-30 16:01
Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X ...
ashlv 发表于 2010-12-30 15:38
这个够详细的。
作者: ashlv    时间: 2010-12-30 16:15
回复 7# L_kernel


    抄的,书上不是都有说么?
默认就是greedy的
作者: ChiangWei    时间: 2010-12-30 17:10
非常感谢!明白了
作者: cjaizss    时间: 2010-12-30 21:57
[root@Centos-simplify ~]# echo "192.168.10.1"|sed -e 's/\(.*\)\..*/\1/'
192.168.10

小弟有个疑问, ...
ChiangWei 发表于 2010-12-30 15:16



    贪婪性,正则表达式尽可能多的满足前面的,再满足后面的
作者: BangBull    时间: 2011-01-10 15:17
正则表达式的贪婪性
作者: jiang5feng    时间: 2011-01-11 15:55
学习了。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2