replaceAll(" ","") trim() 으로 제거되지 않는 공백 제거

[code java]String str =originalString.replaceAll(" ", "");[/code] 등으로 삭제되지 않는 공백문자를 제거 해 보자.

상기 코드로 삭제되지 않는 이유는.. cjk 문자셋에서 나타나는 IDEOGRAPHIC SPACE 라 불리는 유니코드 \u3000 , HTML 표현으로는   문자로 폰트 지원이 없으면 눈에 보이지 않는(display 되지 않는) 코드로만 존재하는 공백이기 때문.
http://www.fileformat.info/info/unicode/char/3000/index.htm

이럴 경우 다음과 같은 정규식을 통해 제거가 가능.

모든 공백 제거
[code java]String str =originalString.replaceAll("\\p{Z}", "");[/code]

앞뒤 공백만 제거(trim)
[code java]String str =originalString.replaceAll("(^\\p{Z}+|\\p{Z}+$)", "");[/code]
2014/06/17 18:45 2014/06/17 18:45
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다
  1. 좋은글 감사합니다.

    퍼가요~

  2. Blog Icon
    euna

    감사합니다. trim이 안되서 애먹고 있었는데 해결했네요. 정말 감사합니다

정규식을 이용한 문서 편집

문서편집이나 프로그래밍, 코딩 작업을 할때 단순 반복 작업을 할 경우들이 있다. 편집할 내용이 얼마 안된다면 빠른 손동작으로 수정을 하면 되겠지만 편집할 분량이 많은 때 손동작 만으로 편집을 하게 될 경우 몇날 몇일을 수정하고 확인해야 하는 지루한 작업이 될 수 있다. 어찌 보면 단순 반복작업인데 바꿔야할 내용도 편집할 분량도 많다면 컴퓨터 초보자에게는 난감한 일이 아닐 수 없다. 이럴 경우에 정규식 치환을 이용하는 것이 좋다. 아래 동영상은 에디트플러스(editplus)라는 편집기로 바꾸기를 할때 정규식 체크를 해서 대량의 데이타를 구미에 맞게 변환하는 모습을 보여준다. 몇자 안되는 변환식으로 몇날 몇일 했던 반복 작업을 순식간에 처리할 수 있다. 단, 편집할 내용에 적당한 규칙이 있어야 한다. 그러나 대부분의 반복작업의 경우 규칙이 있게 마련이다. 자유롭게 데이타를 바꾸는 것은 학습이 어느 정도 필요하므로 필요에 따라 정규식을 알고 있는 전문가나 개발자에게 도움을 구하는 것도 현명한 방법일 수 있다.



* 첫번째 바꾸기 변환식) ([a-z]+)\n ===> \1','
  - 배열문에 데이타를 일괄 적용할 때 응용할 수 있다.
* 두번째 바꾸기 변환식) ([a-z]+)\n ===> color_array[]='\1';\n
  - 자바스크립트나 액션스크립트에서 배열문을 만들때 응용할 수 있다.
* 세번째 바꾸기 변환식) ([a-z]+)\n ===> \1='$x_\1',\n
  - PHP에서 SQL 문을 만들때 응용할 수 있다.

처음 정규식을 접하는 분들은 어려워서 배우는 것을 쉽게 포기할 수 있다. 사람은 누구나 필요하면 하게 되 있다. 필요한 것부터 하나 하나 만들거나 배껴 쓰다 보면 어느 순간 전문 편집가가 되어 있을 것이다.
당신이 프로그래머라면 정규식, 스크립트 언어, 데이타베이스, 매크로들을 잘 조합하면 번역기 같은 고난이도 변환 프로그램도 만들수 있을 것이다.

다음 시간에는 실생활에 응용할 수 있는 다양한 정규식에 대해 다뤄보기로 하자!


원문 출처 : http://hompy.info/103
2007/06/08 16:42 2007/06/08 16:42
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다