99 votes

Quelle est l'expression régulière pour "Pas d'espace et pas de tiret"

J'ai essayé cela mais cela ne fonctionne pas :

[^\s-]

Des idées ?

159voto

codaddict Points 154968
[^\s-]

devrait fonctionner et aussi

[^-\s]
  • [] : La classe de caractères
  • ^ : À l'intérieur de la classe de caractères, ^ est le négateur lorsqu'il apparaît au début.
  • \s : abréviation pour un espace blanc
  • - : un trait d'union littéral. Un trait d'union est un caractère spécial à l'intérieur d'une classe de caractères mais pas lorsqu'il apparaît au début ou à la fin.

92voto

Engvard Points 91

Il est possible de le faire beaucoup plus facilement:

\S qui est équivalent à [^ \t\r\n\v\f]

10voto

Cagdas Points 401

Quel langage de programmation utilisez-vous ? Peut-être avez-vous juste besoin d'échapper le backslash comme "[^\\s-]"

8voto

polygenelubricants Points 136838

En Java :

    String regex = "[^-\\s]";

    System.out.println("-".matches(regex)); // affiche "false"
    System.out.println(" ".matches(regex)); // affiche "false"
    System.out.println("+".matches(regex)); // affiche "true"

Le regex [^-\s] fonctionne comme prévu. [^\s-] fonctionne également.

Voir aussi

0voto

Marcelo Cantos Points 91211

Peut-être que le - est confondu avec un opérateur de plage (comme dans [a-z]). Essayez de le mettre en premier.

[^-\s]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X