Comment rechercher des occurrences de plusieurs espaces entre les mots d'une même ligne
1. this is a line containing 2 spaces
2. this is a line containing 3 spaces
3. this is a line containing multiple spaces first second three four
Tous les éléments ci-dessus sont des correspondances valides pour cette expression régulière. Quelle expression régulière dois-je utiliser?
[ ]{2,}
ESPACE (2 ou plus)
Vous pouvez également vérifier cela avant et après ces espaces suivent les mots. (pas d'autres espaces comme des tabulations ou de nouvelles lignes)
\w[ ]{2,}\w
les mêmes, mais vous pouvez aussi choisir (capturer) uniquement les espaces pour des tâches comme le remplacement
\w([ ]{2,})\w
ou voir qu'avant et après les espaces il y a quelque chose, pas seulement des caractères Word (sauf les espaces)
[^\s]([ ]{2,})[^\s]
Solution simple:
/\s{2,}/
Cela correspond à toutes les occurrences d'un ou de plusieurs caractères d'espacement. Si vous devez faire correspondre la ligne entière, mais uniquement si elle contient deux ou plusieurs caractères d'espacement consécutifs:
/^.*\s{2,}.*$/
Si les espaces ne doivent pas nécessairement être consécutifs:
/^(.*\s.*){2,}$/
Rechercher [ ]{2,}
. Cela trouvera deux ou plusieurs espaces adjacents n'importe où dans la ligne. Elle associera également les espaces de début et de fin, ainsi que les lignes constituées entièrement d'espaces. Si vous ne le souhaitez pas, consultez la réponse d'Alexander.
En fait, vous pouvez omettre les crochets, ils sont juste pour la clarté (sinon le caractère d'espace qui est répété n'est pas très visible :)).
Le problème avec \s{2,}
est que cela correspondra également aux nouvelles lignes des fichiers Windows (où les nouvelles lignes sont désignées par CRLF
ou \r\n
qui correspond à \s{2}
.
Si vous souhaitez également rechercher plusieurs onglets et espaces, utilisez [ \t]{2,}
.
Voici ma solution
[^0-9A-Z,\n]
Ceci supprimera tous les chiffres, les virgules et les nouvelles lignes mais sélectionnera l’espace du milieu, tel que le jeu de données de
Cette expression rationnelle sélectionne tous les espaces, vous pouvez l'utiliser et la remplacer par un seul espace
\s+
exemple en python
result = re.sub('\s+',' ', data))