1

我正在处理一个字符串,

30-Nov-2012 30-Nov-2012 United Kingdom, 31-Oct-2012 31-Oct-2012 United Arab Emirates, 29-Oct-2012 31-Oct-2012 India 

每次在四位数字后出现空格时,我都需要添加空格,即:

30-Nov-2012@30-Nov-2012@United Kingdom, 31-Oct-2012@31-Oct-2012@United Arab Emirates, 29-Oct-2012@31-Oct-2012@India 

我不知道如何编写正则表达式,请帮助?

4

2 回答 2

1

由于您不知道如何编写正则表达式,因此最好的选择是学习如何使用正则表达式。

这是一个很好的教程。

http://www.vogella.com/articles/JavaRegularExpressions/article.html

你要写的表达式似乎不是很复杂。完成本教程后,您应该能够做到这一点。

编辑:这是另一个提示。看看replaceAll

并看看积极的回顾

Edit2:我很无聊,所以这是答案。

string.replaceAll("(?<=\\d{4})\\s", "@");
于 2012-10-31T07:12:24.867 回答
1

试试这个正则表达式:

(\d{4})\s+

用。。。来代替

$1@

和示例代码:

String result = inputString.replaceAll("(\\d{4})\\s+", "$1@");

解释:

\d 匹配任何十进制数字。

{n} 精确匹配前一个元素的n次数。

\s 匹配任何white-space字符。

+ 匹配前一个元素一次或多次。

(subexpression) 捕获匹配的子表达式并为其分配一个从零开始的序数。

$ number 替换与组号匹配的子字符串。

于 2012-10-31T07:36:18.397 回答