Что такое регулярное выражение для «не пробела и не дефиса» - PullRequest
41 голосов
/ 07 мая 2010

Я пробовал это, но это не работает:

[^\s-]

Есть идеи?

Ответы [ 5 ]

79 голосов
/ 07 мая 2010
[^\s-]

должно работать и так будет

[^-\s]
  • []: класс чар
  • ^: внутри класса char ^ находится отрицатель, когда он появляется в начале.
  • \s: сокращение от пробела
  • -: буквальный дефис. Дефис является метасимвол внутри класса char, но не когда это появляется в начале или в конце.
51 голосов
/ 04 января 2013

Это можно сделать гораздо проще:

\S, что равно [^ \t\r\n\v\f]

7 голосов
/ 07 мая 2010

Какой язык программирования вы используете? Может быть, вам просто нужно избежать обратной косой черты, как "[^ \\ s -]"

6 голосов
/ 07 мая 2010

В Java:

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

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

Регулярное выражение [^-\s] работает как положено. [^\s-] тоже работает.

Смотри также

0 голосов
/ 16 ноября 2011

Попробуйте [^- ], \s будет соответствовать 5 другим символам рядом с пробелом (например, табуляция, новая строка, перевод строки, возврат каретки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...