Je m'excuse si cette question a déjà reçu une réponse, mais j'ai cherché et je ne trouve pas la réponse. J'essaie d'écrire une expression rationnelle qui correspondra à tous les espaces avant et arrière, aux espaces entre les crochets ouvrants et fermants et au mot, mais pas aux espaces entre les mots. Voici des exemples de format de chaîne de caractères des données que j'analyse :
[Header]
[ SomeSpace]
[ Some1 More Space 15 ]
-
pas d'espace avant et arrière, pas d'espace entre les parenthèses et un seul mot.
-
un espace avant et arrière, un espace entre la parenthèse ouvrante et un espace arrière.
-
un espace avant, un espace entre le mot et les chiffres, un espace entre la parenthèse ouvrante et la parenthèse fermante, et un espace arrière.
La plus proche regex que j'ai trouvée est :
/[^\[\]a-zA-Z\d]/
Mais je n'arrive pas à démêler uniquement les espaces entre les mots et les chiffres...
Le code ruby que j'utilise actuellement comme solution de rechange est le suivant :
line.gsub!(/^\s*/, "")
line.gsub!(/\[/, "")
line.gsub!(/\]/, "")
s = line.gsub!(/^\s*|\s*$/, "")
s = "[" + s + "]\n"
Évidemment, pas très jolie...
Toute aide pour rationaliser cela dans une ligne gsub élégante est grandement appréciée.
Merci !
Lee