0

我想使用java方法ReplaceAll替换数字前的空格?我应该如何创建一个正则表达式来实现它?

这是一个例子:

我想改变:

John 9:50
Steve 12:30
Luke Peter 14:44

至:

John\t9:50
Steve\t12:30
Luke Peter\t14:44
4

3 回答 3

3

这是一个积极的前瞻性断言的工作:

String resultString = subjectString.replaceAll(" (?=\\d)", "\t");

如果您指的是任何类型的空格(包括制表符、换行符、换页符等),请使用\\s我在这里使用的简单空格。

于 2013-09-10T20:38:00.877 回答
1

没有其他人建议这样做:

str = str.replaceAll("\\s+(?=\\d)", "\\t");

这会将数字前的任意数量的空白字符替换为制表符。

其他答案都只替换数字前的最后一个空格,可能导致最终字符串中有多个制表符。

于 2013-09-10T20:49:02.020 回答
1
String newStr = oldStr.replaceAll(" (?=\\d)","\\t");
于 2013-09-10T20:38:34.233 回答