当空格后跟四位数时添加标识符

时间:2012-10-31 07:05:01

标签: java android regex string

我正在处理一个String,

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 

我不知道怎么写正则表达式,请帮忙吗?

2 个答案:

答案 0 :(得分:1)

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

这是一个非常好的教程。

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

您想要编写的表达式似乎并不复杂。在完成本教程后,您应该能够这样做。

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

并查看positive lookbehinds

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

string.replaceAll("(?<=\\d{4})\\s", "@");

答案 1 :(得分:1)

试试这个正则表达式:

(\d{4})\s+

替换为

$1@

和示例代码:

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

解释

  

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

     

{n} 的   与前一个元素完全匹配n次。

     

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

     

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

     

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

     

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