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

Я хочу проверить, что символы являются буквенно-цифровыми:

Regex aNum = Regex("[a-z][A-Z][0-9]");

Я хочу добавить опцию, что может быть пробел, поэтому это будет двухсловное выражение:

Regex aNum = Regex("[a-z][A-Z][0-9]["\\s]");

но не удалось найти правильный синтаксис.

id применять любое подстрекательство.

Ответы

Ответ 1

[A-Za-z0-9\s]{1,} должен работать на вас. Он соответствует любой строке, содержащей буквенно-цифровые или пробельные символы и длиной как минимум один char. Если вы принимаете символы подчеркивания, вы также сокращаете его до [\w\s]{1,}.

Вы должны добавить ^ и $, чтобы проверить все совпадения строк, а не только часть строки:

^[A-Za-z0-9\s]{1,}$ или ^[\w\s]{1,}$.

Ответ 2

Точно два слова с одним пространством:

Regex aNum = Regex("[a-zA-Z0-9]+[\s][a-zA-Z0-9]+");

ИЛИ любое количество слов, имеющих любое количество пробелов:

Regex aNum = Regex("[a-zA-Z0-9\s]");

Ответ 3

"[A-Za-z0-9\s]*"

соответствует буквенно-цифровым символам и пробелам. Если вы хотите слово, которое может содержать пробелы, но хотите, чтобы оно начиналось и заканчивалось буквенно-цифровым символом, вы можете попробовать

"[A-Za-z0-9][A-Za-z0-9\s]*[A-Za-z0-9]|[A-Za-z0-9]"

Ответ 4

Чтобы не допускать пустые строки, тогда

Regex.IsMatch(s ?? "",@"^[\w\s]+$"); 

и разрешить пустые строки

Regex.IsMatch(s ?? "",@"^[\w\s]*$"); 

Я добавил??? "", поскольку IsMatch не принимает нулевые аргументы