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

Регулярное выражение не пустое, а не пустое

Я пытаюсь создать регулярное выражение, которое вернет false, если шаблон String содержит пробельные символы или пуст. Пока у меня это

[^\s] 

Я думаю, что убедитесь, что строка не содержит пробелов, но я не уверен, как проверить, чтобы убедиться, что она не пустая. Любая помощь будет оценена.

4b9b3361

Ответ 1

/^$|\s+/, если это согласовано, есть пробел или его пустой.

Ответ 2

Большинство движков регулярных выражений поддерживают escape-последовательности "counter part". То есть для \s (white-space) есть его счетная часть \s (небелое пространство).

Используя это, вы можете проверить, есть ли хотя бы один символ без пробела с ^\S+$.

PCRE для PHP имеет несколько из этих escape-последовательностей.

Ответ 3

В итоге я использовал что-то похожее на принятый ответ с небольшими изменениями

(^$)|(\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 $

Ответ 4

В моем понимании вы хотите совместить непустую и непустую строку, поэтому верхний ответ делает наоборот. Я предлагаю:

(.|\s)*\S(.|\s)*

- это соответствует любой строке, содержащей хотя бы один символ без пробелов (\S посередине). Ему может предшествовать и следовать чему угодно, любой char или пробельной последовательности (включая новые строки) - (.|\s)*.

Вы можете попробовать с объяснением на https://regex101.com/.

Ответ 5

/^[\s]*$/ соответствует пустым строкам и строкам, содержащим только пробелы