[완료] 자바에서 trim 여부 검사하는 정규 표현식이 맞는지 도와주세요.
글쓴이: emptynote / 작성시간: 금, 2015/09/04 - 10:47오전
java에서 trim 할 대상이 있는지 여부를 검사하는 정규 표현식을 찾아
junit4로 여러가지로 테스트한 상태이지만
자신감이 없기에 이것이 맞는지 도움을 얻고자 합니다.
okky 사이트에도 올린 질문이지만
아무래도 정규식 하면 유니스류 쉘 고수님들을 따를 수 없다고 생각해서
이곳에 질문 올립니다.
정규 표현식 : "^\\s+[^.$]*|[^.$]*\\s+$"
------------- 추가
답변주신 김정균님 감사합니다. 덕분에 반신반의하던 생각이 정리되어 완료로 바꿈니다.
Forums:
trim이 목적이라면"^\\s+|\\s+$"
trim이 목적이라면
"^\\s+|\\s+$" 정도면 충분합니다. 다만 예전 버전(JAVA7 이하)의 java의 경우 native charset에서는 \s를 사용할 수가 없을 수도 있다고 하네요. 즉 예를 들어 " 한글"의 경우에는 trim이 되지 않을 수있다고 합니다.
http://stackoverflow.com/questions/4731055/whitespace-matching-regex-java 문서를 보시면 추천이 가장 높은 답변이 이에 대한 언급을 하고 있습니다. 참고하세요.
예 답변 감사합니다.
예 답변 감사합니다.
좋은 정보 감사합니다. jdk. 1.7 이하 에서는 \s 에 한글이 포함 안될 수 있군요.
trim 이 목적이 아니라 trim 대상 문자열 즉 앞뒤로 공백이 붙은 문자열인지 판단하는것이 목적입니다.
환경 설정 파일에서 지정된 값 앞뒤로 공백 문자열이 있으면
자동적으로 trim 해 주는것이 아닌 다시 앞뒤 공백을 제거한 문자열을 넣으라고 에러 메시지를 보여줄려고 합니다.
자동 trim 이냐 에러 메시지냐? 고민하다가 자동이면 넣으면 안되는것을 모르고 지나치기때문에 에러 메시지 처리하는것으로 정했습니다.
제가 정규식에 알러지가 있어서 trim 목적을 나름 검색해 보고 공부해서
"여러줄이 반복되어도 앞뒤로 공백이 있는 문자열 인지 판단" 이거 정규식으로 "^\\s+[^.$]* | [^.$]*\\s+$" 로 만들어 본건데요.
여러줄이 반복되어도 는 제 머리속에서 (^.*$)* 인데 이거로 하면 안되더라구요.
그래서 [^.$]* 로 표현한건데요. 뭐.. 제 마음속에는 맞다고 생각하지만 정규식 알러지 가진 제가 어찌 맞다고 감히 장담할 수 있겠습니까!
해서 질문 드린겁니다.
정정합니다.
아래 문장을 정정합니다.
------ 수정전 -------------
\s 에 한글이 포함 안될 수 있군요.
------ 수정후 -------------
\s 와 한글이 궁합이 안맞을 수 있군요.
댓글 달기