블로그 이미지
초딩입맛제주아재
하고 싶은 것만 하며 살고 싶다

calendar

1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

'도메인추출'에 해당되는 글 2

  1. 2008.02.22 URL, 도메인 추출 정규식 (2)5
  2. 2008.02.20 URL, 도메인 추출 정규식
2008. 2. 22. 17:30 Programing/HTML/JavaScript/CSS
어제 정규식 수정하고 포스팅 하는걸 깜빡했네요^^;;

첫 정규식에서는 도메인에 하이픈이나 한글 도메인 추출이 안됐었죠.





또다시 머리를 이리굴리고 저리굴리고 하다가 해결했습니다.





정규식을 이렇게 바꿔봤습니다.
/(http(s)?:\/\/)?\S+(\.[^(\n|\t|\s|\/))]+)+/gi

이전 것은 이랬죠.
/(http(s)?:\/\/)?\w+\.\w+(\.\w+)+/gi

\S는 공백을 제외한 문자입니다.
\S를 씀으로써 추가적인 문제가 발생할 수도 있습니다만, 그 문제는 생각하지 않기로 했습니다.
정 거슬리면 [a-zA-Z0-9가-힣] 이런 식으로 쓸 수도 있습니다만,
아직은 원하는 결과를 보여주니 도메인추출 정규식은 여기서 마무리를 지어야 겠습니다.^^;
혹시 더 좋은 방법 알고 계신분은 지도 부탁드립니다~~


posted by 초딩입맛제주아재
2008. 2. 20. 19:18 Programing/HTML/JavaScript/CSS
문자열중에서 URL(그중 프로토콜과 도메인 부분까지만...) 추출해야 하는 작업이 있었습니다.
정규식을 잘 못다뤄서 상당한 시간을 소비했네요;;;
그렇다고 결과가 썩 맘에 들지는 않습니다.
문제점이 많아서....-_-;;





코드는 간단합니다. 몇 시간 쥐어짜낸것 치고는 형편없죠....-_-;;
 
<script>
  function aa(){
      var aa = document.getElementById('aa');
      var patt = /(http(s)?:\/\/)?\w+(\.\w+)+/gi;
      var result = (aa.value.match(patt));

    aa.value = result.join('\n');
}
  </script>
 </head>

 <body>
  <textarea id="aa" cols="100" rows="10">
    * 컴퓨터 싸게 잘 사는 방법 - 가격비교 PC분야 우수업체 아싸컴! 인텔 콘로탑재 PC 최저가 178,500원.
      http://www.assacom.com
    * 컴퓨터전문 쇼핑몰 싸다컴 - 무이자할부, 전국출장A/S, 경품이벤트 무료배송, 특가HP노트북 - 싸다컴
      http://www.ssadacom.com
    * 컴퓨터전문몰 아이프로컴 - 컴퓨터22만원할인, 쿼드 40만원, 전국출장A/S, 본체10만원, USB증정.
      http://www.iprocom.co.kr
    * 인터넷 익스플로러 7 - 지금 업그레이드 하세요. 최신 Google에 최적화된 IE7
      http://www.google.com/toolbar/ie7/
    * 조립컴퓨터 강자 팝콘피씨 - 인텔최신 코어2쿼드 컴퓨터 할인판매 전국 출장A/S 저가 컴퓨터143,500원
      http://www.popcornpc.co.kr/user_pag
  </textarea>
  <input type="button" onclick="aa()">

정말 간단하죠???
풀이를 하자면
(http(s)?:\/\/)? - http 또는 https 프로토콜명이 있어도 그만 없어도 그만. '?' 는 0번 또는 1번 매칭이죠~
\w+ - 알파벳과 숫자로 된 문자열이 1개 이상 매칭~
(\.\w+)+ - .daum 처럼 닷(.) 다음에 문자열로 이루어진 패턴이 1회 이상 매칭

언뜻 보면 잘 되는 것 같습니다만 저 코드는 치명적인 버그를 갖고 있습니다...(그러니 저 코드는 쓰지마시길~^^)



문제점이 보이시나요?
아래와 같은 문제점이 저 코드안에 도사리고 있답니다...

  • www.img-daum.net 같은 하이픈(-)이 들어간  도메인은 추출을 못합니다.
  • 언더바(_)가 들어가도 마찬가지죠...
  • 한글도메인도 같은 신세입니다~

저 문제들은 오늘 퇴근하고 머리를 좀 굴려봐야겠습니다.
정규식만 제대로 이해하면 될텐데 말이죠~

내일 다시 제대로된 코드를 포스팅 하도록 하겠습니다.




posted by 초딩입맛제주아재
prev 1 next