2012-08-02 254 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