'정규표현식'에 해당되는 글 5건

  1. 2009/03/02 정규표현식(Regular Expression) Href URL 캡쳐(Capture)
  2. 2009/02/28 sunyruru의 미투데이 - 2009년 2월 27일
  3. 2009/02/26 여러줄을 한번에 StringBuilder로 감싸는 방법~! - Editplus 정규표현식, 바꾸기 기능 (4)
  4. 2009/02/13 Visual Studio에서 " " 따옴표로 묶은 문자열만 잡기
  5. 2009/02/13 Editplus의 정규표현식 사용 문자열 바꾸기 (3)
2009/03/02 09:35

정규표현식(Regular Expression) Href URL 캡쳐(Capture)

참고 주소 

http://hoons.kr/Board.aspx?Name=QACSHAP&Mode=2&BoardIdx=20596&Key=&Value=

http://phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=32231

 



이 글은 먼저 훈스닷넷(hoons.kr)에 질문으로 올라온 글 덕에 작성해본 코드이고요.

정규표현식(Regular Expression)을 이용해 HTML의 링크에 해당하는 <a href="..." 형태의 URL 부분만 받아오도록 처리하는 방법을 아래 코드로 요약해봅니다.

자세한 주석의 설명은 없지만, () 괄호로 구분되는 정규표현식 테그로 치환되는 값들을 유심히 살펴보시면 됩니다. 

 주석에 나와 있는 숫자 설명은

붉은색으로 강조해 둔 부분에 들어갈 값을 설명한 내용이에요~


(PS. 첨부된 파일은 테스트용 전체 소스에요)

/// <summary>

/// URL을 뽑아온다

/// 0:Link

/// 1:host.domain (FQDN)

/// 2:protocol

/// 3:domain extension (.net, .co.kr, .com ...)

/// 4:port

/// </summary>

/// <param name="strHtml"></param>

/// <returns></returns>

private List<string> GetHrefs(string strHtml)

{

List<string> urlList = new List<string>();

Regex r;

Match m;

 

// ref. url http://phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=32231

string pattern = string.Empty;

pattern += @"((http|https|ftp|mms):\/\/[0-9a-z-]+(\.[_0-9a-z-]+)+(:[0-9]{2,4})?\/?)"; // domain+port

pattern += @"([\.~_0-9a-z-]+\/?)*"; // sub roots or sub directory

pattern += @"(\S+\.[_0-9a-z]+\??)?"; // file & extension string

pattern += @"([_0-9a-z#&=-]+)*"; // parameter

 

r = new Regex(pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);

 

for (m = r.Match(strHtml); m.Success; m = m.NextMatch())

{

if (string.IsNullOrEmpty(m.Groups[0].Value))

continue;

 

urlList.Add(m.Groups[0].Value);

}

return urlList;

}

 

저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 0

Trackback : http://i-ruru.com/trackback/409 관련글 쓰기

2009/02/28 04:31

sunyruru의 미투데이 - 2009년 2월 27일

이 글은 sunyruru님의 2009년 2월 27일의 미투데이 내용입니다.

크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 0

Trackback : http://i-ruru.com/trackback/419 관련글 쓰기

2009/02/26 08:59

여러줄을 한번에 StringBuilder로 감싸는 방법~! - Editplus 정규표현식, 바꾸기 기능



자주 사용하는 기능인데 귀찮아서 -_ -;;

강좌로 올리진 않았는데..

생각난 김에 잠깐 캡쳐를 해서 샥샥~ 블로깅 합니다.



뭐 하다보면 StringBuilder 일 수 있고 아닐 수도 있지만

유사한 방법으로 활용하시면 될 듯 해요 ㅎㅎ

일단 핵심인 Editplus가 있어야 겠고요.

먼저 다음과 같은 쿼리문을 스트링 빌더(StringBuilder)로 감싸야 한다고 생각해보죠.

뭐 3줄 이니 그냥해도 되지만, 줄이 많은 경우를 가정해서 하는 것이라고 생각해주세요.






먼저 '바꾸기 (Ctrl + H)'를 눌러서 바꾸기 창을 띄우고요.

다음처럼 따라서 누르면 위쪽에 '찾을 말' 부분에 추가가 되거든요.


먼저 한 줄의 시작 부분에



그 뒤부분에 나오는 전체 문자들을 전부 잡을 것이기 때문에
우리가 필요로 하는 부분을 테그로 감싸야 합니다. () 모양인 것이 태그죠.


이제 모든 문자열을 잡습니다. '.' 점(dot)이 그 것을 나타냅니다.


어떤 문자열이든 한 글자 이상 나오면, 그 것을 잡는다는 말이고요.



이제 줄의 끝까지를 잡는다는 말이에요.
결과적으로 한줄의 어떤 문자열이 오든 잡는다는 말이죠. 대신 한 글자라도 있어야 하고요.



그렇게 적용한 후에 아래 '바꿀 말' 부분을 작성해줍니다.

위에서 '찾을 말' 에서 태그 () 로 잡은 안의 문자열 들은 \1 '바꿀 말'의 \1로 변환 되는 거에요.

기존에 있던 글자를 () 괄호 안의 .+ 가 잡은 모든 글자들이 아래처럼 감싸지게 됩니다!!

sb.AppendLine(" 기존의 글 ");


위의 형식으로 잡는다는 말이 되는겁니다. 간단하죠?


이제 '모두 바꾸기' 버튼을 누르면,




다음과 같이 한번에 변환 되는 겁니다.

아주 간단한 팁이지만 - _-;;

아직도 노가다로 코딩하시는 분들을 위해....

아주 약간이나마 팁이 되기를... ㅋㅋ



저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 2 Comment 4

Trackback : http://i-ruru.com/trackback/411 관련글 쓰기

  1. Subject decoder의 생각

    Tracked from decoder's me2DAY 2009/02/26 23:25 delete

    여러줄을 StringBuilder로 감싸기 이거 요긴하게 써먹을 수 있겠구만. :)

  2. Subject sunyruru의 생각

    Tracked from sunyruru's me2DAY 2009/02/27 15:50 delete

    Ruru' Programming :) :: 여러줄을 한번에 StringBuilder로 감싸는 방법~! - Editplus 정규표현식, 바꾸기 기능 아주 가끔씩은 쓸 일이 있더라구요 ㅎㅎ

  1. Favicon of http://blog.naver.com/gaebit/ BlogIcon 이경배 2009/12/16 10:20 address edit & del reply

    오... 좋은 글 잘 읽었습니다.
    http://blog.naver.com/gaebit/120093613178
    에 제가 만든 프로그램이 있습니다.
    앞뒤로 따옴표 붙혀주는 프로그램인데요. 스트링 빌더 말고 그냥 스트링에 사용하실때 유용하실껍니다.
    스트링빌더나 다른 언어에서 쓸 수 있게 앞뒤에 사용자가 원하는 문자를 붙힐 수 있도록 수정해야겠네요^^;

    • Favicon of http://i-ruru.com BlogIcon 써니루루 2010/01/01 16:01 address edit & del

      잘 만드셨네요~ ㅎㅎ
      앞에랑 뒤에랑 붙일 문자열을 지정할 수 있으면 더 좋을 것 같네요 ~

  2. add 2010/07/19 17:46 address edit & del reply

    예제덕에 쉽게 잘배우고 갑니다.
    감사해요~

  3. 희야 2010/08/05 17:21 address edit & del reply

    난 그냥 바꾸기에서 ^p -> ";);^psb.append(" 하고

    앞뒤만 조금만 수정해줌 -_-;

2009/02/13 18:19

Visual Studio에서 " " 따옴표로 묶은 문자열만 잡기


오늘은 정규표현식(Regular Expression)에 대한 것을 많이 다루네요 -_ -;;

작업이 노가다 작업을 자주해서 그런가;;

자꾸 편한 방법을 찾다보니 -_ ;;;


"{([:Ha:Wh:Pu:a])+}"


자~~

먼저 답을 해보면 위와같이 하면 되구요.

위에 축약형 기호들은 Visual Studio 전용이에요 ㅎㅎ

다른곳에선 안된답니다;;


위와 같이 사용하면 Visual Studio 에서


public static string strName = "application name";

이렇게 따옴표 안에 글자들을 전부 잡을 수 있어요~

찾아 바꾸기로 많은 변수를 잡아서 일괄적으로 변경할 일이 있으시면 이걸 사용하시면 되겟죠 ^ ^



일반 정규표현식이랑 다르게 VS에서는 {} 가 테그 치환자네요.

바꾸기를 할 경우 따옴표 안에 있는 문자들만 선택되게 되고.

\1 을 통해서 재사용 할 수 있겠습니다~

위 코드에 들어간 것들은 아래와 같은 뜻이에요~
:Ha - 한글
:Wh - 공백
:Pu - 기호
:a - 영문자 & 숫자
+ - 1개 문자 이상
저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 0

Trackback : http://i-ruru.com/trackback/406 관련글 쓰기

2009/02/13 13:34

Editplus의 정규표현식 사용 문자열 바꾸기


뭐 부연설명 안해도 빨간색 메모장으로 잘 아시리라.. 생각하는 Editplus..

오늘 하던일 중에

C# 에 변수들이 주우우욱~~~~

장황하게


DB_Insert_SMS_User_aspx_03= "이름";


이런식으로 변수들이 엄청나게 늘어있는 코드들 중에서


이름

이런식으로 줄마다 값만 남고 다 필요게 하는 작업이 필요했다.

처음엔 '노가다 작업을 그냥 할까? - _-... ' 생각했지만..

문득!!!


'Editplus에 정규표현식으로 바꾸면 되자나!!' 라는 삽질스러운 생각이 왜 들었는지 ㅠ_ ㅠ

결국 10분이나 걸려서 정규표현식(Regular Expression)을 완성했다...


짜잔~

'바꾸기 (Ctrl + H)' 를 눌러서 '정규식(&x)' 를 체크해주고,


찾을말 : [_a-zA-Z0-9 ]*[=]?[\t| ]*"(.*)"[\t| ]*;[\t| ]*$

바꿀말 : \1




이런식으로 입력하면 다들 내가 원하는 변환을 얻을 수 있을 것이다 ㅠㅠ

혹시라도 100년만에 나와 같은 삽질을 할 지 모르는 위인을 위하야~~!!

내용은 별거 없다..

(10분동안 뭐한게냐... ㅠㅠ)
저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 3

Trackback : http://i-ruru.com/trackback/405 관련글 쓰기

  1. Favicon of http://rabbitchris.tistory.com BlogIcon 이재학 2009/02/13 17:19 address edit & del reply

    아, 넘 어려운 정규식.. ^^>

  2. 구성모 2011/09/09 15:47 address edit & del reply

    정규표현식 검색했더니...여기로오네여 ㅋㅋㅋ 추석 잘보내세여~~

    • Favicon of http://i-ruru.com BlogIcon 써니루루 2011/09/30 16:48 address edit & del

      ㅋㅋㅋ 블로그에 정리한게 아니라 대부분 팁이라 볼게 없는데 어째 낚인거네요~