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

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 31

'정규식'에 해당되는 글 3

  1. 2008.02.22 URL, 도메인 추출 정규식 (2)5
  2. 2008.02.20 URL, 도메인 추출 정규식
  3. 2006.08.17 MYSQL 정규식
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 초딩입맛제주아재
2006. 8. 17. 11:39 DataBase/Mysql
출처 : http://missa.or.kr/cgi-bin/technote/read.cgi?board=com_php&y_number=14


mysql에서의 정규식
--------------------------------------------------------------------------------



mysql>select * from work where 열명 like "찾을문자%", "%찾을문자", "%찾을문자%", "____" ;

여기서 like 다음 나오는 형식은 차례로 찾을 문자로 시작하는 단어, 찾을 문자로 끝나는 단어, 찾을 문자

중간에 포함한 단어, 4개로 이루어진 문자 식으로 해석하면 됩니다.
이 명령은 주로 게시판의 검색에 사용하면 편합니다. 뒤에 게시판 구현에서 잘 살펴 보기 바랍니다.

where regexp 사용하기

mysql>select * from work where 열명 regexp "^[jJ]" , "^.{5}" ;

regexp 형식을 보면 좀 생소한 기호가 있을 것입니다. 이 기호는 이 표현식(정규 표현식)에 사용하는 몇가

기호입니다.   그리고, regexp 표현은 대소문자를 가리기 때문에 검색 조건을 입력할 때 주의를 요합니다.
위 형식은 차례로 문자 처음이 소문자 j 대문자 J로 시작하는 조건을 검색, 5개의 문자로 이루어진 단어
검색을 의미합니다.
Regexp 기호

   . - 문자 하나를 나타냅니다.
   *   - 앞에 나온 문자의 0개 이상 반복합니다.
   ^   - 문자열의 처음을 나타냅니다.
   $   - 문자열의 끝을 나타냅니다.
   [,] - 괄호 안의 문자열 일치를 확인합니다.
   {,} - 반복을 나타냅니다.

위 그림은 works 테이블에서 필드가 name인 항목 중 알파벳 b로 시작하는 사람을 찾아 줍니다.

'DataBase > Mysql' 카테고리의 다른 글

Mysql의 한글 정렬  (0) 2006.12.29
mysql_insert_id()  (0) 2006.05.11
posted by 초딩입맛제주아재
prev 1 next