Регулярное выражение для пробела в середине строки
Я хочу проверить, что символы являются буквенно-цифровыми:
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 не принимает нулевые аргументы