Ответ 1
/^$|\s+/
, если это согласовано, есть пробел или его пустой.
Я пытаюсь создать регулярное выражение, которое вернет false, если шаблон String содержит пробельные символы или пуст. Пока у меня это
[^\s]
Я думаю, что убедитесь, что строка не содержит пробелов, но я не уверен, как проверить, чтобы убедиться, что она не пустая. Любая помощь будет оценена.
/^$|\s+/
, если это согласовано, есть пробел или его пустой.
Большинство движков регулярных выражений поддерживают escape-последовательности "counter part". То есть для \s
(white-space) есть его счетная часть \s
(небелое пространство).
Используя это, вы можете проверить, есть ли хотя бы один символ без пробела с ^\S+$
.
PCRE для PHP имеет несколько из этих escape-последовательностей.
В итоге я использовал что-то похожее на принятый ответ с небольшими изменениями
(^$)|(\s+$)
Объяснение Expresso
Select from 2 alternatives (^$) [1] A numbered captured group ^$ Beginning of line ^ End of line $ [2] A numbered captured group (\s+$) Whitespace, one or more repetitions \s+ End of line $
В моем понимании вы хотите совместить непустую и непустую строку, поэтому верхний ответ делает наоборот. Я предлагаю:
(.|\s)*\S(.|\s)*
- это соответствует любой строке, содержащей хотя бы один символ без пробелов (\S
посередине). Ему может предшествовать и следовать чему угодно, любой char или пробельной последовательности (включая новые строки) - (.|\s)*
.
Вы можете попробовать с объяснением на https://regex101.com/.
/^[\s]*$/
соответствует пустым строкам и строкам, содержащим только пробелы