Я создаю файлы и хотел бы создать новое имя файла, если оно уже существует, подобно тому, как OS X/windows делает с добавлением (1).Регулярное выражение, соответствующее имени файла в Scala
Я изучаю Scala в данный момент, и хотя я уверен, что есть уже метод; Мне очень хотелось бы знать, как это сделать без него.
Моя цель состоит в том, чтобы увидеть, если файл существует через private def doesFileExist(completeFilename: String) : Boolean = { logger.info("Checking if file already exists") Files.exists(Paths.get(completeFilename)) }
, а затем, если это не я хочу, чтобы добавить имя файла. Поскольку мне нужно проверить, обновлено ли имя файла, я подумал, что было бы проще всего регулярное выражение и посмотреть, есть ли что-то вроде "/^[a-zA-Z0-9_-][\\d{1,2}][a-z0-9_\\.]{3,4}$/"
Который, я думаю, будет подходящим, возможно, я ошибаюсь, я не смог проверить Это. :)
Я просто не могу получить его, чтобы собрать независимо от того, сколько статей я прочитал и поэтому я не совсем уверен, как это исправить:
val RegexPattern = "/^[a-zA-Z0-9_-][\\d{1,2}][a-z0-9_\\.]{3,4}$/".r
if (fileName.matches(RegexPattern)) {
}
это явно не удается, как это ожидает строку но я даю ему Regex. Затем я попробовал матч ...
fileName match {
case RegexPattern => println("Etf")
}
, но это неверно. любая помощь приветствуется, спасибо.
Редактировать: Несколько иной подход после поиска примера в Интернете.
val pattern = "([0-9]+) ([A-Za-z]+)".r
val pattern(count, fruit) = "100 Bananas"
println(pattern)
println(count)
println(fruit)
val RegexPattern = "(.+(?=\\/))(\\/)(.+(?=\\.))".r
val RegexPattern(dir, delimeter, file) = "direct/ory/filename.ext"
println(dir + " - ")
примечание, пример bona отлично работает, однако мой нет. Регулярное выражение действует как проверенное.
См. Мой ответ здесь, где вы должны иметь parens в 'match'. http://stackoverflow.com/a/18223356/1296806 В противном случае вы просто проверяете равенство с объектом 'Regex'. –
@ som-snytt Спасибо, теперь я посмотрю еще раз, это также применимо к моему обновленному подходу? – null
Вы имеете в виду, что ваши изменения не работают? –