ТЛ; др
Просто добавьте пробел в свой класс персонажа .
^[a-zA-Z0-9_ ]*$
Теперь, если вы хотите быть строгим ...
Выше не совсем правильно. Из-за того, что это *
означает ноль или более , он будет соответствовать всем следующим случаям, которые обычно не будут совпадать:
- Пустая строка "".
- Строка, состоящая исключительно из пробелов, "".
- Строка, которая приводит и / или тянется с пробелами "Hello World".
- Строка, содержащая несколько пробелов между словами «Hello World».
Первоначально я не думал, что такие детали стоит того, чтобы о них рассказывать, так как ОП задавал такой простой вопрос, что строгость не была проблемой. Теперь, когда вопрос приобрел некоторую популярность, я хочу сказать ...
Который, в моем вкусе (без использования \w
) переводится как:
^[a-zA-Z0-9_]+( [a-zA-Z0-9_]+)*$
(Пожалуйста, upvote @stema независимо.)
Несколько замечаний по поводу этого (и @ stema's) ответа:
Если вы хотите разрешить использование нескольких пробелов между словами (например, если вы хотите разрешить случайные двойные пробелы или если вы работаете с текстом, вставленным при копировании из PDF), добавьте +
после пробела:
^\w+( +\w+)*$
Если вы хотите разрешить вкладки и символы новой строки (пробельные символы), замените пробел на \s+
:
^\w+(\s+\w+)*$
Здесь я предлагаю использовать +
по умолчанию, потому что, например, разрывы строк в Windows состоят из двух пробельных символов в последовательности \r\n
, поэтому вам нужно будет использовать +
оба.
Все еще не работает?
Проверьте, какой диалект регулярных выражений вы используете. * В таких языках , как Java , вы будете иметь , чтобы избежать ваши обратные слэши, ИЭ \\w
и \\s
. В более старых или более основных языках и коммунальных услугах, как sed
, \w
и \s
не определены, поэтому их выписывать с классами символов, например [a-zA-Z0-9_]
, и [\f\n\p\r\t]
, соответственно.
* Я знаю, что этот вопрос помеченvb.net, но исходя из 25 000+ просмотров, я предполагаю, что не только те люди, которые сталкиваются с этим вопросом. В настоящее время это первое попадание в Google по поисковой фразе, слову регулярного выражения .