Я пытаюсь сделать текстовый конвертер для имен файлов с регулярным выражением, в этом тексте есть несколько разных типов тире и дефисов, минус и т. Д. И т. Д.Я хочу преобразовать их все в простой дефис.
Есть несколько типов различных тире, и их юникоды здесь:
u2212 u002D u05BE u2011 u2012 u2013 u2014 u2015 u207B u208B u2212 uFE58 uFE63 uFF0D
, если символ является одним из этих юникодов, тоЯ хочу преобразовать его в простой дефис, который равен u2010 с регулярным выражением.
Как заставить этот символ преобразовать регулярное выражение с помощью Java?
Сначала я проверял имя файладопустимо или нет так:
private static final Pattern FILE_NAME = Pattern.compile("^[a-zA-Z0-9_\\u2212\\u002D\\u00AD\\u05BE\\u2010\\u2011\\u2012\\u2013\\u2014\\u2015\\u207B\\u208B\\u2212\\uFE58\\uFE63\\uFF0D\\.\\s\\,\\[\\]()\\{\\}]+$");
if (!FILE_NAME.matcher(file.getFilename()).matches()) {
throw new FileValidationException(FILE_NAME_INVALID);
}
но теперь я не хочу проверять его, я просто хочу заменить символы дефисом u2010