Regex match d'une chaîne sans attaque et de fuite des espaces

La construction d'une expression qui va rejeter une inculte de la chaîne d'entrée.

Avoir un groupe de la liste blanche des symboles, y compris espaces. Mais il ne peut pas être utilisé lors de la première ou à la dernière position. Cependant, il peut être utilisé entre un leader et de découpage de la liste blanche symbole de n'importe quel montant.

Ont une expression suivante:

^[^\s][A-Za-z0-9\s]*[^\s]$

... mais il ne fonctionne pas dans plusieurs raisons, au moins, il correspond à l'attaque et de fuite position de toute non-blanc symbole, même si elle n'est pas dans la liste blanche. D'ailleurs, il ne correspond pas seule lettre, un mot, même si elle correspond à l'expression.

La liste blanche est A-Z, a-z, 0-9, espace.

Cas valide:

Abc132 3sdfas //everything ok

Invalide le cas n ° 1:

 asd dsadas //leading\trailing space is exist

Invalide le cas n ° 2:

$das dsfds //not whitelisted symbol at the leading\trailing position

Donc, comment faire pour ajouter un espace symbole de la liste blanche si ce n'est pas le premier ou la fuite symbole?

  • Pourriez-vous faire quelques exemples de valide et valide affaires?
  • essayez d'utiliser \\s s'il vous plaît laissez-moi savoir si cela a aidé, j'ai eu le même problème et c'était ce qui me manquait
  • oui, prendre un coup d'oeil
  • ^[A-Za-z0-9]+(?:\s+[A-Za-z0-9]+)*$
  • ^[A-Za-z0-9]+.*[A-Za-z0-9]+$: premier caractère doit être alphanumeric et au moins une occurrence, et la dernière devrait être aussi le même, avec tout le reste. permet-il de résoudre le problème?
InformationsquelleAutor WildDev | 2016-08-13