string.replaceAll(正则表达式,替换)在某些情况下不起作用

时间:2012-07-25 16:08:18

标签: java

我尝试使用的正则表达式是

 String re2="((?:(?:[1]{1}\\d{1}\\d{1}\\d{1})|(?:[2]{1}\\d{3}))[-:\\/.](?:[0]?[1-9]|[1][012])[-:\\/.](?:(?:[0-2]?\\d{1})|(?:[3][01]{1})))(?![\\d])";    // YYYYMMDD 1

但是当我尝试替换所有出现时,

string.replaceAll(re2,getDate(dayForward,dateFormat));

不起作用。和,

matcher.appendReplacement(stringBuffer, getDate(dayForward,dateFormat));

仅替换第一次出现。

有什么方法可以替换所有的事件?

1 个答案:

答案 0 :(得分:0)

您必须将结果放在另一个变量中:

String replaced = string.replaceAll(re2,getDate(dayForward,dateFormat));

否则,这意味着你的正则表达式不正确。