2015-10-05 34 views
0

我正在學習正則表達式,因此提出此問題。我有一個字符串使用正則表達式在字符串之間添加空格

String time = 7 AM-9PM;

我需要補充的空間,這樣的字符串會出來這樣的

時間爲上午7點 - 晚9點。

到目前爲止我曾嘗試以下正則表達式

time.replaceAll( 「(\ d {1})」, 「$ 1」);

和它給輸出

上午9時至下午7時

現在我只需要前後的空間 - 。有人可以建議我需要在正則表達式中添加什麼來實現最終輸出。

謝謝

+0

time.replaceAll( 「?!(^)([A-Z])」, 「$ 1」); –

+0

你試過什麼問題?它以什麼方式不起作用? (順便說一下,你是否將返回值分配回「時間」?) – Thomas

+0

您應該編輯您的問題以顯示您嘗試過的以及發生了什麼。評論對這類事情很有用,但是對於這個問題的新人不應該閱讀整個評論主題來找出基本信息。 – dcsohl

回答

2

如果試圖7AM-10PM你會發現10將被分拆像1 0:想必不是你想要的!

我設法與2個replaceAlls做到這一點:

String time = "7AM-10PM" 
System.out.println(time 
    .replaceAll("([0-9]+)", "$1 ") //spaces around numbers 
    .replaceAll("([\\-])", " $1 ")); //spaces around '-' 

結果:7 AM - 10 PM

+0

感謝尼克,它工作。 –

相關問題