2017-12-27 575 views
0

如何刪除返回字符串中有問題的空白區域? 我在Excel中使用單元格內的函數,我有一個字符串,我在其中找到特定的文本並將其移動到同一字符串中的另一個地方。正則表達式替換(Excel VBA) - 從組中刪除空白空間

我的結果很好,除了它們包含一個額外的空白,我無法弄清楚如何刪除。我相信這對你來說很簡單,但我對於正則表達式和學習很陌生。

示例文本字符串:

999999 - Blah Blah Blah 8888 blah blah 

期望的結果是:

999999 (8888) - Blah Blah Blah blah blah 

我的實際效果(注意第3布拉赫額外的空格)

999999 (8888) - Blah Blah Blah blah blah 

這裏是我的目前相關代碼:

strPattern = "^(\d{6})(\-)(\D+)(\d{4})" 
strReplace = "$1($4) $2$3" 

有人能幫我學習如何通過我的strPattern定義和/或strReplace定義來處理這個問題嗎?

非常感謝。

+0

從'strReplace'中刪除空格,並將一個添加到'strPattern'的最後一個組中 –

回答

1

你可以調整你的正則表達式模式之前可選空白字符爲一些非數字符號匹配越好:

^(\d{6})(-)(\D*?)\s*(\d{4}) 
       ^^^^^^ 

regex demo

詳細

  • ^ - 字符串開頭
  • (\d{6}) - 第1組:六位數字
  • (-) - 組2:一個連字符和空格
  • (\D*?) - 組3:任何0+字符比其他數字,但儘可能少爲*?量詞是懶(該量化圖案只嘗試,並且當隨後的圖案不匹配擴)
  • \s* - 0+空白字符
  • (\d{4}) - 4組:四位數字。