본문 바로가기

Programming/JAVA

java : 정규식 표현을 해야할 경우에는 정규식 표현을 사용하는 것이 좋습니다. :)

String 클래스에는 정말 많은 메소드들이 있는데 그 안에 그만큼 많은 정규식 파라미터가 있다는 거 아시나요?
모두 열거하기에는... 제가 그만큼 메소드들을 머릿속에 넣어둔게 아니라 패스할게요^^;;; ㅠㅠ

은근히 자주쓰이고, 은근히 많이 접하는 코드에 집중해볼까요?
split, replaceAll  메소드들은 data를 특별하게 가공하거나 할 경우에 정말 많이 접하는 메소드들입니다.
그런데 이 녀석들 어떤 때에 많이 쓰시나요?

오늘 제가 한 작업중에는 웹(클라이언트)에서 넘어온 data의 공백을 제거해야하는 일이 있었습니다.
clientString = "아버지가 방에 들어가신다.";
clientString.replaceAll(" ", "");

잘 먹혔을까요?
ㅠㅠ

알면서도 만들어내는 버그들중 하나가 바로 정규식을 제대로 쓰지 않아서입니다.
정말 많이 쓰이는 공백문자 제거를 위한 공백문자의 정규식 표현정도는 알아두는게 좋겠습니다.
\\p{Space}

적용해보면
clientString = "아버지가 방에 들어가신다.";
clientString.replaceAll("\\p{Space}", "");

로 작성할 수 있겠습니다.

우리 모두 이런 작은 실수 하나로 종일 코드붙잡고 있는 일은 없도록 합시다 ㅎㅎㅎ


java 정규식 표현 패턴 링크
http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html