2012-02-21 52 views
-6

我需要一個正則表達式,它將用偶數個斜槓替換奇數個斜槓,同時保持偶數個斜線不變。

例如:Java中的正則表達式替換奇數的斜槓

  • 測試/ 123 - >測試// 123
  • 測試// 123 - >測試// 123
  • 測試/// 123 - >測試////// 123
+0

我只需要編寫正則表達式的幫助。像這樣:[/] {奇怪]與[/] {奇} – Wael 2012-02-21 14:57:30

回答

1
Pattern p = Pattern.compile("(?<!/)/(//)*(?!/)"); 
    Matcher m = p.matcher(inputString); 
    String outputStr = m.replaceAll("$0$0"); 
  • (?<!/)確保沒有斜槓賽前權利;
  • /(//)*匹配奇數的斜槓;
  • (?!/)確保比賽結束後沒有斜線。

替換字符串是$0$0,它將匹配的斜槓加倍。

我已經在您的輸入上測試了它,它的工作原理與您的規格完全相同。

+0

考慮在我的回覆中使用負向lookahead/lookbehing。比使用積極的表達式和手動否定它們更容易。 – 2012-02-21 15:09:31

+1

@ Anony-Mousse:好的建議,謝謝! – NPE 2012-02-21 15:11:47

0

(?<!/)((//)*/)(?!/)替換爲任何你想要的。

+0

問題是取代它與偶數/ /取決於捕獲的字符串。這個正則表達式正如我試圖捕獲任何偶數/ – helios 2012-02-21 15:03:53

+0

任何奇數。你可以很容易地用兩倍的斜線替換它,或者n + 1。 – 2012-02-21 15:08:34

相關問題