aide sur regex

WRInaute occasionnel
Salut,

Je cherche à enlever des espaces entre des lettres avec des regex et je ne sais pas si c'est faisable. Il faut enlever les espaces si une lettre seule est entourée d'espace.

$chaine = "c'est un t e s t";
> resultat voulu : "c'est un test"

Merci pour votre aide
 
Nouveau WRInaute
Hello :)

J'ai effectué un test avec ta chaine, et j'ai recollé les lettres de t e s t
Je travaille souvent sur les Regex avec du Shell ou du Perl.
Sous Linux, dans la konsole, tu peux saisir cette ligne de commande Shell: sed 's/t e s t/test/g' <fic.txt>

J'espère que ça marchera
Speedwell
 
WRInaute discret
C'est possible avec une regexp pour la chaîne en exemple, mais avec "c'est un t e s t que je fais", le résultat n'aura aucun sens car le dernier t de test est encadré par des espaces.
 
Nouveau WRInaute
Hello Dan_A
Je viens de faire un mini essai avec Perl, et ça m'affiche bien "test" correctement.
La commande qui permet de faire ça, c'est: $ch =~ s/t e s t /test /g;
Et le résultat en sortie me donnait cette chaîne: "c'est un test que je fais"
Le code Perl ressemble à ça:

Code:
my $ch = "c'est un t e s t que je fais";

$ch =~ s/t e s t /test /g;

print "$ch\n";
 
S
StefouFR
Guest
Non, mais c'est un exemple qu'il a donné.

C'est impossible à faire pour de vrai phrase.
 
Nouveau WRInaute
Ah oui bien sûr, dans le cas de phrases entières dont tous les mots sont séparés par des espaces, ce n'est pas vraiment possible de le faire ..., en effet non.
En IL, on peut toujours travailler les chaînes avec des \s et \w, mais seulement quand ça vaut le coup (par exemple, pour un grand volume de textes comme les corpus).

Autrement, autant réécrire la phrase manuellement, ça va plus vite.
 
WRInaute occasionnel
Effectivement c'est un texte que je recupere d'une conversion avec pdftohtml et certains mots ont des espaces.

En faisant une p'tite boucle je vais y arriver.

Merci
 
Discussions similaires
Haut