程序代码如下:这段代码是前两天在CSDN上看到的,自己研究了一下,有一些地方不太明白,请大家帮忙解释一下,谢谢!代码如下:
//第1句
result = result.replaceAll("零([^亿万圆])", "零");
//第2句
result = result.replaceAll("亿零+万","亿零");
//第3句
result = result.replaceAll("零+", "零");
//第4句
result = result.replaceAll("零([亿万圆])", "$1");
//第5句
result =result.replaceAll("^壹拾","拾");以下是我自己的理解:
第1句是把以零开头,而非亿,万,圆结尾的替换成零,请问第一句的圆括号()是做什么用的
第2句$1是做什么用的
就这些谢谢!我觉第5句的^应该去掉!

解决方案 »

  1.   

    以我个人的见解来解释下
    "亿零+万"的意思
    ---->>> 
    就是+号以前的字符出现一次或多次
    例如
    X+
    就是X可以出现一次或多次
    说错了别笑
    呵呵
      

  2.   

    楼上说的没错!但我要问的不是这个.
    steedhorse(晨星)说的我有点不太明白
      

  3.   

    其实就是括号中的东东([^亿万圆])result = result.replaceAll("零([亿万圆])", "$1");$1指([^亿万圆])匹配的内容
      

  4.   

    具体来说吧正则表达式可能匹配的字符串是零亿、零万、零圆,result = result.replaceAll("零([亿万圆])", "$1");这句话意思是遇见零亿、零万、零圆,相应替换成亿、万、圆
      

  5.   

    regex的group问题。如果你认真看jdk的doc的话,这点应该不难理解。
      

  6.   

    先谢谢楼上两们朋友,但还有些不明白:
    ([^亿万圆])意思是不以亿万圆开头的,$1指([^亿万圆])匹配的内容;
    result = result.replaceAll("零([亿万圆])", "$1");这句怎么会自动把
    零亿、零万、零圆,相应替换成亿、万、圆
      

  7.   

    写错了 更改一下 上贴
    其实就是括号中的东东([亿万圆])result = result.replaceAll("零([亿万圆])", "$1");$1指([亿万圆])匹配的内容
    上述只是针对第4句,与第1句无关另外更正你一下,第一句中([^亿万圆])意思是不等于亿、万、圆,而不是以亿万圆开头的意思
      

  8.   

    谢谢jin_marshal(Sunnywolf) ,明白了