java中的正则表达式替换空格和特定模式

时间:2016-01-20 15:01:18

标签: java string split expression

我是一个有正则表达的小noobie。 我有一个像这样的字符串:

$('#clickMe').click(function() {
    var date1 = $('#firstPayDate');
    var date2 = $('#loanTrm');
    var timeDiff = Math.abs(date2.getTime() - date1.getTime());
    var diffMonths = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
    date2.val(date2.val().replace(diffMonths));
});

我需要一个正则表达式来帮助我替换空格"aaa - bbb - ccc --> ddd" " ",所以在替换之后我会将该字符串作为结果:

"-->"

请帮忙吗?

2 个答案:

答案 0 :(得分:3)

使用替换(正则表达式中的管道符|是逻辑“或”):

str = str.replaceAll(" |-->", "");

或者,因为您不需要正则表达式来查找搜索字词:

str = str.replace(" ", "").replace("-->", "");

可能更容易理解。

答案 1 :(得分:1)

如果你只想要一个表达式,你可以使用这个表达式:

String newOne = old.replaceAll("[ ]|(-->)", "");

这意味着:用空字符串替换所有" " OR -->

但是你有很多选择:

"(-->)?[ ]?"
// or using + or * regular expression operators to capture more spaces in one match if you also have that case
"(-->)*[ ]*"

如果你知道你的字符串也有aaabbb等固定格式,你可以做一个更大的表达,以便一气呵成。

第一个表达式中的括号和空格周围的方括号是您可以更好地查看表达式结构的选项。