2012-08-02 7 views
0

Bonjour et excusez-moi encore une foisRuby regex supprimer l'espace

je besoin d'un REGEX pour supprimer l'espace de caractères (» «). Si ce caractère n'est pas suivi pour un autre caractère d'espace.

Example String 

"This is a ex am ple" 

Result 

"This is a example" 

je tentais cette Regexes:

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

Je pensais aussi à remplacer car je sous-correspondances ne savez pas comment l'utiliser comme en rubis

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

jeter Cependant, une exception.

Merci à l'avance

Répondre

1

Vous avez une petite erreur dans le second gsub. Essayez ceci:

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

J'ai vérifié ceci sur votre exemple, cela fonctionne pour moi.

+0

Merci beaucoup. J'utilise votre solution – maxiperez

0

Essayez cette expression reg:

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

Entrée:

"This  is a ex am ple" 

Sortie:

"This  is a example" 
+0

Excusez-moi Le Regex à mon avis, est correcte. Cependant quand j'essaye cette regex j'obtiens -> "Ceci est un ex ambre" (Excusez-moi j'obtiens le même résultat) – maxiperez

+0

J'ai mal compris votre question, maintenant je l'ai eu. J'ai modifié la réponse – Alex

4

essayer avec ceci:

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

sortie:

This is a example 
+0

Merci beaucoup. – maxiperez

+0

testé par ruby ​​1.9.3p194 – godspeedlee

+0

Je ne pense pas (? <= \ S) \ s (? = \ S) est une bonne idée. Il peut-être combiner non-alphabet et alphabet ensemble. Désolé PraVn, je le change en arrière. – godspeedlee