Maison  >  Questions et réponses  >  le corps du texte

Éliminer « deux espaces ou plus » dans une expression régulière

J'ai besoin d'une regex pour autoriser :

  1. Pas d'espace en début ou en fin de ligne
  2. Il ne peut y avoir qu'un seul espace entre les mots

J'en ai assez de quelque chose comme "^[АЯ-Ёа-яё0-9' ']+$" - mais ce n'est pas ce dont j'ai besoin.

P粉959676410P粉959676410369 Il y a quelques jours923

répondre à tous(1)je répondrai

  • P粉133321839

    P粉1333218392023-09-17 12:55:12

    Cela devrait fonctionner :

    ^(?! )(?!.*  )(?!.* $)[^\s].*$

    Voici une répartition de l'expression :

    • ^ : Affirmez le début de la ligne.
    • (?!) : Annulez l'anticipation et interdisez les espaces au début de la ligne.
    • (?!.*) : anticipation négative, deux espaces consécutifs ou plus dans la chaîne ne sont pas autorisés.
    • (?!.* $) : annule l'anticipation et n'autorise pas les espaces à la fin de la ligne.
    • [^s] : correspond à tout caractère autre qu'un espace.
    • .* : fait correspondre n'importe quel caractère (sauf la nouvelle ligne) 0 fois ou plus.
    • $ : Affirmez la fin de la ligne.

    J'ai fait un petit test sur regex101.com.

    répondre
    0
  • Annulerrépondre