Что такое регулярное выражение для "Не пробелы, а не дефис",
Я пробовал это, но он не работает:
[^\s-]
Любые идеи?
Ответы
Ответ 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, возврат каретки).