Это регулярное выражение проверяет любое количество пробелов, за которым следует любое количество буквенно-цифровых символов, затем любое количество открытых парен, затем любое количество близких, затем любое количество амперсандов и любое количество периодов. .
То, что вы хотите, это ...
test.matches("[\\w \\(\\)&\\.]*")
Как уже упоминалось mmyers, это позволяет пустую строку. Если вы не хотите разрешить пустую строку ...
test.matches("[\\w \\(\\)&\\.]+")
Хотя это также позволит использовать строку, состоящую только из пробелов или только точек, и т. Д. Если вы хотите указать хотя бы один буквенно-цифровой символ ...
test.matches("[\\w \\(\\)&\\.]*\\w+[\\w \\(\\)&\\.]*")
Таким образом, вы понимаете, что говорит регулярное выражение ... все, что в квадратных скобках ("[]") указывает на набор символов. Итак, где «a *» означает 0 или более символов «a», [abc] * означает 0 или более символов, каждый из которых является символом «a», «b» или «c».