모바일 개발이나 각종 사이트를 처리할 때 HTML 페이지를 가져와서 분석하는 경우가 종종 있습니다. 보통 HTML 파싱할 때 정규식을 이용해서 했었는데요. 단점이 태그와 같은 것이 중첩되어 있을 경우, 첫번째 태그까지만 찾게 되는 것이었습니다. 아무래도 정규식 자체가 문자열 매칭이기 때문에 한계가 있는 것 같구요. 결국 DOM과 같은 구조를 사용하지 않으면 안될 것 같다는 생각이 들었습니다. 예전에 Javascript에서 쓸 수 있는 HTML Parser도 한번 소개한 적이 있기는 한데요. 오늘은 Java에서 활용할 수 있는 HTML Parser인 jsoup에 대해서 이야기 해보려고 합니다. jsoup: Java HTML Parserjsoup은 실제 사용하는 HTML을 처리할 수 있는 자바 라이브러리인데..
전화번호를 다루는 프로그래밍을 하다보면 포맷이 다른 경우가 많습니다. 그래서 중간에 )나 -가 들어가 있는 경우는 그대로 두고, 숫자만 있는 경우 포맷을 변경해서 -를 추가하는 javascript를 구성해 봤습니다. 즉, 다음과 같은 형태로 처리 된다고 보시면 됩니다. 021112222 -> 02-111-2222 03111112222 -> 031-1111-2222 0101112222 -> 010-111-2222 이와 같은 작업을 하기 위해서 두가지 방법이 있습니다. 전체 자리수를 확인하고 if ~ else를 통해서 경우의 수를 모두 처리하는 방법이겠죠. 그런데 좀 세련되어 보이지 않습니다. 그래서 정규식(Regular Expression)을 사용해 보기로 하겠습니다. 구성한 예제는 다음과 같습니다. ja..
HTML 태그를 제거하고 순수하게 텍스트만 가져오는 부분이 필요해서 관련 소스를 정리해봤습니다. 정규식에 대해서는 개념은 들어보셨을 겁니다. 나중에 기회가 되면 정규식에 대해서도 한번 정리해 보도록 하구요.. 오늘은 간단하게 원하는 기능을 구현한 소스를 보여드리도록 하겠습니다. 정규식을 6개 정도 적용하고 있는 간단한 소스입니다. 각각 HTML의 스크립트 태그와 내용, 스타일 및 내용, 태그들, 엔터티, 공백문자들을 제거하는 정규식 표현입니다. private String getText(String content) { Pattern SCRIPTS = Pattern.compile("]*>.*?",Pattern.DOTALL); Pattern STYLE = Pattern.compile("",Pattern.DOT..
요즘 맥북과 아이폰에 빠져서 글이 뜸합니다. ^^ 이것저것 해보는 재미가 쏠쏠하네요. Apps를 사용하는데 그치지 않고 XCode를 이용한 iPhone Apps 개발을 조금씩 해보려구 합니다. 처음으로 해보고 오늘 정리할 내용은 아이폰 어플 개발에서 정규식(Regular Expression)을 사용하는 방법입니다. 실제 프로그래밍에서 정규식을 사용해보면 편리함 때문에 계속 쓰게 되는데요. 아이폰 어플 개발에서는 찾기가 쉽지 않더라구요. 기본적으로 OS X에서 정규식을 지원하기 위해 ICU라는 오픈소스 Unicode 라이브러리가 있습니다. 그런데 이 ICU API가 C/C++에서는 지원되고 있지만 아직 Object-C에는 포함되어 있지 않습니다. 다행히도 RegexKitLite라는 써드파티에서 만든 라이브..