Escape их с помощью \
:
Regex.IsMatch(searchString, @"^[a-zA-Z0-9\[\]()*]+$")
Следует отметить, что экранирующие правила различаются в зависимости от того, находится ли персонаж внутри класса символов (то есть [_chars_]
) или нет.
Например - (
должен быть экранирован до \(
вне класса символов, потому что в противном случае он обозначает начало группы (то есть (_something to capture_)
).Другие символы, такие как ?
и .
, всегда должны быть экранированы, если они находятся вне класса символов.
Примечание
Я отредактировал использование термина 'персонаж группа ', потому что мне правильно указали, что, хотя я и стараюсь четко разграничить, это все же может вызвать путаницу с «группой» (захват / не захват).Регекс может быть достаточно запутанным, потому что я не буду больше мутить воду.