Я пробовал это, но это не работает:
[^\s-]
Есть идеи?
должно работать и так будет
[^-\s]
[]
^
\s
-
Это можно сделать гораздо проще:
\S, что равно [^ \t\r\n\v\f]
\S
[^ \t\r\n\v\f]
Какой язык программирования вы используете? Может быть, вам просто нужно избежать обратной косой черты, как "[^ \\ s -]"
В 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-] тоже работает.
Дефис может быть включен сразу после открывающей скобки, или непосредственно перед закрывающей скобкой, или сразу после отрицательной каретки.
Попробуйте [^- ], \s будет соответствовать 5 другим символам рядом с пробелом (например, табуляция, новая строка, перевод строки, возврат каретки).
[^- ]