2012-08-02 176 views
0

你好,請問再次Ruby正則表達式刪除空間

我需要一個REGEX來刪除字符空間(「」)。如果此字符未被其他空格字符所遵循。

Example String 

"This is a ex am ple" 

Result 

"This is a example" 

我是想這樣的正則表達式:

string.gsub(/\s{1}/,"") 

而且我想在子匹配替換爲我不知道因爲用它紅寶石

string.gsub(/(\w)()(\w)/,/\1\3/) 

然而拋出異常。

預先感謝

回答

1

您在第二個gsub中有小錯誤。試試這個:

string.gsub(/(\w)()(\w)/, '\1\3') 

我檢查了你的例子,它適用於我。

+0

非常感謝。我使用你的解決方案 – maxiperez 2012-08-02 15:30:11

0

嘗試此reg表達式:

string.gsub(/(?<!\s)\s(?!\s)/, ''); 

輸入:

"This  is a ex am ple" 

輸出:

"This  is a example" 
+0

對不起正則表達式在我看來是正確的。然而,當我嘗試這個正則表達式時,我獲得 - >「這是一個例子」(對不起,我獲得相同的結果) – maxiperez 2012-08-02 15:26:03

+0

我誤解了你的問題,現在我明白了。我修改了答案 – Alex 2012-08-02 15:27:05

4

嘗試這樣的:

print "This is a ex am ple".gsub(/(?<=\w)\s(?=\w)/, '') 

輸出:

This is a example 
+0

非常感謝。 – maxiperez 2012-08-02 15:30:22

+0

ruby​​測試1.9.3p194 – godspeedlee 2012-08-02 15:32:26

+0

我不認爲(?<= \ S)\ s(?= \ S)是一個好主意。它可能將非字母和字母組合在一起。對不起PraVn,我改回來了。 – godspeedlee 2012-08-02 15:42:49