Подтвердить что ты не робот

Что такое регулярное выражение для "Не пробелы, а не дефис",

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

[^\s-]

Любые идеи?

4b9b3361

Ответ 1

[^\s-]

должен работать, поэтому

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

Ответ 2

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

\S, который равен [^ \t\r\n\v\f]

Ответ 3

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

Ответ 4

В 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-] также работает.

См. также

Ответ 5

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