PHP preg_match необходим для того, чтобы между словами разрешался только ОДИН символ пробела

В основном мне нужен preg_match, который гарантирует, что между каждым словом допускается только один пробел (если есть более одного слова).

Мое существующее правило:

(^[A-Za-z\s]+$)

Благодарю.

3 ответа

Решение

Это зависит от того, что вы подразумеваете под "словом", но при условии, что вы имеете в виду буквы в AZ или az, вы можете попробовать это:

^[a-zA-Z]+( [a-zA-Z]+)*$

Обратите внимание, что \s не означает пробел - это означает любой пробел, включая новую строку.

/^[\S]+\s?[^\s]?/i

Будет искать любое слово с одним пробелом после него, а не пробел после этого одного пробела

/\s?\S+\s/

Будет искать любой символ с пробелами по обе стороны или только в конце.

Я думаю, чтобы указать количество вхождений в ваш матч, который вы поставили, например, {1} {1,5} (чтобы соответствовать только 1 или от 1 до 5 включительно), так что-то вроде...

^ [A-Za-z] + ({1}) $

Другие вопросы по тегам