黑马程序员技术交流社区

标题: 关于正则表达式 [打印本页]

作者: 袁培育    时间: 2012-5-22 14:51
标题: 关于正则表达式
视频里有一个用正则来对ip地址进行排序的练习,我主要是弄不明白replaceAll是怎么回事,譬如说用replaceAll(“0*(\\d{3})”,“$1”)来对“002”和“00192”进行替换,它是先找(\\d{3})还是先找0*,如果是先找0*那么00192是以0开头,为什么002就不是以0开头的呢?如果先找(\\d{3})那应该是从后往前找三个数字,然后再看前面是否有0或是否有多个0,这样对002和00192进行替换时得到的结果的确是002和192,可是对1002进行替换时得到的结果是1002,这又是怎么回事呢?
作者: 魏涞    时间: 2012-5-22 15:07
从左到右的匹配,这个表达式的意思是:0*表示以0开头,并0出现了0次到多次(可以不出现),(\\d{3})表示该组中,由任意数字组成,出现3次。
这里的00192满足条件(0开头并出现了2次,后面是数字组成,是一个三位数),002不满足条件(0开头,并出现了2次,但后面不是一个3位数)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2