Je veux remplacer tous plus de 2 espaces blancs dans une chaîne mais pas de nouvelles lignes, j'ai cette expression régulière: \s{2,}
mais elle correspond également à de nouvelles lignes.
Comment puis-je faire correspondre 2 espaces blancs ou plus uniquement et pas de nouvelles lignes?
J'utilise c #
Réponses:
Placez les caractères d'espace blanc que vous souhaitez mettre en correspondance dans une classe de caractères. Par exemple:
[ \t]{2,}
correspond à 2 espaces ou tabulations ou plus.
Vous pouvez également faire:
[^\S\r\n]{2,}
qui correspond à tout char-espace blanc sauf
\r
et\n
au moins deux fois (note que le capitalS
en\S
est l' abréviation[^\s]
).la source
\s{2,}
saisir les nouvelles lignes en procédant? Si c'était le cas,\n\s{2,}
je comprendrais. Et pourquoi taper un espace littéral entre crochets fonctionne-t-il?\s
correspond aux espaces, aux tabulations et aux sauts de ligne. "Et pourquoi taper un espace littéral entre crochets fonctionne-t-il?", Eh bien, euh, parce que c'est le cas. Je ne sais pas quoi dire d'autre à ce sujet :)Regex pour cibler seulement deux espaces: [] {2,} Les crochets dans l'expression régulière sont une classe de caractères. Signifiant juste les caractères là-dedans. Ici juste de l'espace. Le crochet bouclé suivant signifie deux fois ou plus.
la source