2011-04-07 2 views
4

공백과 기호가있는 파일 이름을 A-Z, a-z, 마침표, 하이픈 및 밑줄 문자 만 포함하도록 변환하고 싶습니다. 이 정규식과 같은 것 : ([a-z][A-Z]-_\.)+파일 이름을 정리하고 단순화하는 라이브러리는 무엇입니까?

물론, 나는 이것을 정규식으로 할 수있다. 그러나 이미 프로젝트 (Spring, Hibernate, Apache Commons 등)에 많은 라이브러리를 포함하고 있기 때문에, 이와 같은 것이 이미 사용 가능한지 궁금합니다.

은 따라서이 같은 문자열 :

This>is some(string,with $invalid*-chars).jpg 

이 변환 될 것이다 :

This_is_some_string_with__invalid_-chars_.jpg 

답변

9

없음 라이브러리가 당신에게 String.replaceAll("[^a-zA-Z0-9-_\\.]", "_")

+9

사실보다 간단 뭔가를 제공 할 수있게 될 것 없다. 나는 이것이 표준 헬퍼 라이브러리가'StringUtil.cleanFilename (name)'타입의 메소드를 가질 수있는 공통된 요구 사항 일 것이라고 생각했다. 별거 아니야. 그건 그렇고, 올바른 정규식은''somestring ".replaceAll ("[^ a-zA-Z0-9 -_ \\.] ","_ ")'입니다. – Tauren

+1

코멘트가 정규식으로 업데이트 될 수 있다면 좋을 것입니다. –

+0

사용자가 영숫자가 아닌 문자 (중국어, 액센트가있는 언어 등)가있는 시스템에서는이 기능이 작동하지 않습니다. – misaka

관련 문제