本帖最后由 klas2008 于 2012-4-6 20:32 编辑
X* X,零次或多次 ,
这里*代表出现0次或者多次,那么出现1次就不会被替换吧。
但是以下我用了出现0,1,2,3次的情况都验证了下,结果总是0 2 22 222,也就是把最后一个数字前的0都去掉了。
0*代表0之后这个0出现"0次"或者"多次",那么002的两个0应该保留才对呀。因为它在0之后仅出现了一个0;
而如果这个"多次"的意思包括1次的话, 那X+ X,一次或多次 干嘛还要说一次呢,所以这个“多次”应该不包括1吧,那问题就变成上面那句话了。
求解救我晕头转向的脑袋~~~{:soso_e134:}- class Regex
- {
- public static void main(String[] args){
- String s = "000 002 022 222 ";
- System.out.println(s.replaceAll("0*(\\d)","$1"));
- }
- }
复制代码 |