2013-09-10 67 views
0

我想用java方法ReplaceAll替換一個數字前面的空格?我應該如何創建一個正則表達式來實現它?如何使用Replace方法替換數字前的空格?

下面是一個例子:

我想改變:

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

要:

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

你的意思是'\ t'作爲製表符,對吧?不是字面反斜槓,接着是't'? –

+0

我會避免在這種情況下使用選項卡,因爲如果名稱比其他名稱更長或更短,可能會遇到格式不正確的輸出,而是使用格式化程序或String.format(...)(基本相同事情)。 –

+0

例如,我會在'(?= \\ d)'上分割,然後使用'String.format(「%xs%yx」,myTokens [0],myTokens [1])'其中x和y是需要確保適當間距的值。 –

回答

3

這是一個positive lookahead assertion工作:

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

如果您意思是任何類型的空白(包括標籤,換行符,換頁等),使用\\s而不是我在這裏使用的簡單空間。

1
String newStr = oldStr.replaceAll(" (?=\\d)","\\t"); 
1

沒有其他人提出這樣的:

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

這將替換用標籤字符一個數字之前的空白字符任意數量

其他答案全部只替換上一個數字之前的空白,可能導致最終字符串中有多個製表符。

相關問題