我想使用java方法ReplaceAll替换数字前的空格?我应该如何创建一个正则表达式来实现它?
这是一个例子:
我想改变:
John 9:50
Steve 12:30
Luke Peter 14:44
至:
John\t9:50
Steve\t12:30
Luke Peter\t14:44
这是一个积极的前瞻性断言的工作:
String resultString = subjectString.replaceAll(" (?=\\d)", "\t");
如果您指的是任何类型的空格(包括制表符、换行符、换页符等),请使用\\s
我在这里使用的简单空格。
没有其他人建议这样做:
str = str.replaceAll("\\s+(?=\\d)", "\\t");
这会将数字前的任意数量的空白字符替换为制表符。
其他答案都只替换数字前的最后一个空格,可能导致最终字符串中有多个制表符。
String newStr = oldStr.replaceAll(" (?=\\d)","\\t");