Нет правильного или неправильного ответа на это.
Обычно дешевле проверять использование смещения логики для конкретного условия.
Если звучит лучше, говоря, что разрешено , затем используйте допустимый (положительный) класс символов.
Разрешенный класс: [()*+^/Xx0-9 ]
, проверки: <space>
(-+
/-9
X
\^
x
Недопустимый класс: [^()*+^/Xx0-9 ]
, проверки: \0-\37
!-'
,
\-
.
:-W
Y-\]
_-w
y-\377
Статистически, если% 99 отвведенные данные были действительны, класс «Разрешено» будет выполнять меньше работы, так как
не нужно проверять каждый символ или диапазон.
Где класс «Не разрешено» должен проверять каждый диапазон.
В этом конкретном случае у отрицательного класса есть гораздо больше диапазонов и символов для проверки, его граница
более эффективна, если большинство данных были неверными,