Page 1 sur 1

[R] Supprimer les espaces en trop d'une chaîne de caractère

Posté : ven. 15 févr. 2013 13:43
par clark17
Bonjour,

J'ai une chaîne de caractère qui peut contenir des mots avec parfois des espaces à l'intérieur mais aussi et surtout des espaces à la fin de la chaîne. J'aimerai me débarrasser de ses espaces en trop mais je ne vois pas trop comment m'en sortir...

Par exemple j'ai ce genre de chaînes (les points sont des espaces):
TAAOUINE........
AAAA..BBBB.....................

Re: [..] Supprimer les espaces en trop d'une chaîne de carac

Posté : ven. 15 févr. 2013 14:09
par mikell

Code : Tout sélectionner

StringStripWS ( "string", [color=#880000]8[/color] )

Re: [..] Supprimer les espaces en trop d'une chaîne de carac

Posté : ven. 15 févr. 2013 15:16
par ani
ou bien ;)
ConsoleWrite(StringRegExpReplace("AAAAAAA BBBBBBBB CIDJI IDJ ","\s",""))
vous renverra AAAAAAABBBBBBBBCIDJIIDJ

Re: [..] Supprimer les espaces en trop d'une chaîne de carac

Posté : ven. 15 févr. 2013 16:22
par clark17
Grrr il m'a coupé les espaces dans les guillemets, j'ai remplacé par des points. Je veux juste me séparer des espaces à la fin du mot, pas à l'intérieur.

Re: [..] Supprimer les espaces en trop d'une chaîne de carac

Posté : ven. 15 févr. 2013 16:28
par clark17
Je m'auto répond, à l'aide de la fonction StringStripWS et le flag 1+2 il m'enlève les espaces au début et à la fin. Ça nous donne ceci:

Code : Tout sélectionner

Local $text = StringStripWS("   this    is   a   line    of   text   ", 3)
MsgBox(0, "Stripped from both ends", $text)
 
Merci à vous, sujet résolu.

Re: [..] Supprimer les espaces en trop d'une chaîne de carac

Posté : mar. 19 févr. 2013 16:47
par TommyDDR
clark17 a écrit :Je m'auto répond
Ou le vilain, Mikell vous a donné 99% de la réponse. ^^

Re: [R] Supprimer les espaces en trop d'une chaîne de caract

Posté : mer. 20 févr. 2013 04:03
par ani

Code : Tout sélectionner

ConsoleWrite(StringRegExpReplace("      AAAAAAA BBBBBBBB CIDJI IDJ       ","\s+\z","") & @LF)
Ceux-ci retira tout les espacement à la Fin de la chaine.
\s = recherche les espaces, @TAB,@LF, @CRLF
+ = repete le caractere
\z = recherche a la fin de la chaine

reviend à l'identique

Code : Tout sélectionner

ConsoleWrite(StringStripWS ( "      AAAAAAA BBBBBBBB CIDJI IDJ       ", 2 ) & @LF)
les valeurs pour StringStripWS
1 = retire tout les espacement du Debut
2 = retire tout les espacement de Fin
3 = retire tout les espacement du Debut et Fin
4 = retire les espacement double en debut et fin de chaine
8 = retire tout les espaces

SI vous voulez retirez en debut et fin de chaine comme votre auto réponse(c l'exemple fournis de l'aide), vous avez ceux-ci en regex

Code : Tout sélectionner

ConsoleWrite(StringRegExpReplace("      AAAAAAA BBBBBBBB CIDJI IDJ       ","^\s+|\s+\z","") & @LF)
ConsoleWrite(StringRegExpReplace("      AAAAAAA BBBBBBBB CIDJI IDJ       ","\A\s+|\s+\z","") & @LF)
^ = debut
\A = debut de chaine
| = ou bien

voilàvoilà