Я пытаюсь создать регулярное выражение, которое будет определять любой символ, который Windows не принимает как часть имени файла (они одинаковы для других ОС? Я не знаю, если честно).
Эти символы:
\ / : * ? " |
В любом случае, вот что у меня есть: [\\/:*?\"<>|]
Тестер на http://gskinner.com/RegExr/ показывает, что это работает.
Для строки Allo*ha
загорается символ *
, сигнализирующий, что он найден. Однако, если я введу Allo**ha
, загорится только первый *
. Поэтому я думаю, что мне нужно изменить это регулярное выражение, чтобы найти все появления упомянутых персонажей, но я не уверен.
Видите ли, в Java мне повезло иметь функцию String.replaceAll (регулярное выражение строки, замена строки) .
В описании сказано:
Заменяет каждую подстроку этой строки, которая соответствует данному регулярному выражению, с данной заменой.
Другими словами, даже если регулярное выражение только находит первое, а затем прекращает поиск, эта функция все равно найдет их.
Например: String.replaceAll("[\\/:*?\"<>|]","")
Однако я не чувствую, что могу пойти на такой риск. Так кто-нибудь знает, как я могу продлить это?