黑马程序员技术交流社区

标题: 正则表达式小细节晕了 [打印本页]

作者: 龚振 龚振 龚振    时间: 2012-4-8 19:14
标题: 正则表达式小细节晕了
本帖最后由 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:}
  1. class Regex   
  2. {
  3.         public static void main(String[] args){
  4.                 String s = "000 002 022 222 ";
  5.                 System.out.println(s.replaceAll("0*(\\d)","$1"));
  6.         }
  7. }
复制代码

作者: 黑马老兵    时间: 2012-4-8 19:19
我也晕了。。。
作者: pray    时间: 2014-4-26 03:25
人生有风险,入世需谨慎。本回贴不暗示、鼓励、支持或映射读者作出生活方式、工作态度、婚姻交友、子女教育的积极或消极判断。未成年人请在监护人陪同下阅读本贴。无完全民事行为能力者,请立即关闭网页,并用20%高锰酸钾+75%乙醇对键盘、硬盘、电压插座、显示器、鼠标、cpu进行灌溉消毒。




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