CAtlRegExp : Á¤±Ô Ç¥Çö½Ä

CAtlRegExpÀ» ÀÌ¿ëÇÏ¿© Á¤±Ô Ç¥Çö½Ä (Regular expression)À» ó¸®ÇØ º¸ÀÚ. ¿©±â¼­´Â ¼ýÀÚ¿Í ¼Ò¼ýÁ¡ÀÇ ¼ýÀÚ¿¡ ´ëÇؼ­ ó¸®Çغ»´Ù.

Á¤±Ô Ç¥Çö½Ä¿¡ ´ëÇÑ »ó¼¼ÇÑ ¼³¸íÀº Ã¥À» º¸´ø°¡ ¾Æ·¡ µÎ »çÀÌÆ®¸¦ Âü°í ÇÑ´Ù.

http://blog.naver.com/knight50/80128661197

http://www.welog.net/gbbs/bbs/board.php?bo_table=zetc&wr_id=50

CAtlRegExp´Â ¿ÏÀüÇÏ°Ô Ç¥ÁØÀ» µû¸£Áö ¾Ê±â ¶§¹®¿¡ ÀϺΠǥÇö½ÄÀ» ó¸®ÇÏÁö ¸øÇÑ´Ù.
À̺κп¡ ´ëÇؼ­´Â ¾Æ·¡ ¸µÅ©¸¦ ÂüÁ¶ÇÑ´Ù.

http://www.44342.com/VC-f953-t7278-p1.htm

   ¾ý ºñ Ç¥ÁØ !!!

´ëÇ¥ÀûÀÎ °Í Çϳª¸¦ ¿¹¸¦ µéÀÚ¸é  "^[0-9]{2}$" ½ÄÀÇ °æ¿ì µÎÀÚ¸® ¼ýÀÚ¸¦ Ç¥ÇöÇÏ´Â ½ÄÀÌÁö¸¸ CAtlRegExp¿¡¼­´Â  ¹Ýº¹ Áö½ÃÀÚ { }¸¦ ÀνÄÇÏÁö ¸øÇϱ⠶§¹®¿¡ "^[0-9][0-9]$"¿Í °°ÀÌ Á¤»óÀûÀ¸·Î ÆÄ½Ì ÇÑ´Ù. ÀÌ ¿Ü¿¡µµ ´Ù¸¥ ºñÇ¥ÁØ¿¡ ´ëÇÑ »çÇ×Àº À§ ¸µÅ©¸¦ ÂüÁ¶ÇÑ´Ù.

< Á¤±Ô½ÄÀÇ ¹®¹ý ¿ä¾à > ÀÌ¿Ü¿¡µµ ¸¹Áö¸¸ »ý·«ÇÑ´Ù.

^ : Á¤±Ô½ÄÀÇ ½ÃÀÛ

$ : Á¤±Ô½ÄÀÇ ³¡

[ ] :  ´ë°ýÈ£¿¡ ³ª¿­ÇÑ ¹®ÀÚÁß¿¡ Çϳª¸¦ ³ªÅ¸³½´Ù.
       ¿¹) [abc] a, b, c ¹®ÀÚÁß¿¡ Çϳª¸¦ ³ªÅ¸³½´Ù.

´ë°ýÈ£¼ÓÀÇ ÇÏÀÌÇ [ - ] : ¹üÀ§¸¦ ³ªÅ¸³½´Ù.
       ¿¹) [a-c] a, b, cÁß Çѹ®ÀÚ¸¦ ³ªÅ¸³½´Ù.

¼ýÀÚ Ç¥±â \d : [0-9]¿Í °°Àº Àǹ̷ΠC++¿¡¼­ »ç¿ëÇÒ·Á¸é "\\d"·Î Ç¥±âÇÑ´Ù.
        ¿¹) "^\\d$"  ÇÑÀÚ¸® ¼ýÀÚ¸¦ ÀÔ·Â ¹Þ´Â´Ù.

1ȸ ÀÌ»ó ¹Ýº¹ÀÚ + :  Ç÷¯½º( + )°¡ ºÙÀ¸¸é 1ȸ ÀÌ»ó ¹Ýº¹µÊÀ» ³ªÅ¸³½´Ù.
        ¿¹) "^\\d+$" ÇÑÀÚ¸® ÀÌ»óÀÇ ¾çÀÇ Á¤¼ö¸¦ ÀÔ·Â ¹Þ´Â´Ù.

¹Ýº¹¼ö Á¤Çϱâ { } : CAtlRegExp´Â Ç¥ÁØÀ» Áؼö ÇÏÁö ¾Ê±â ¶§¹®¿¡ Áö¿øµÇÁö ¾Ê´Â Ç¥Çö¹ýÀÌ´Ù.
        ¿¹) "^\\d{2}$" µÎÀÚ¸® ¾çÀÇ Á¤¼ö¸¦ ÀÔ·Â ¹Þ´Â´Ù.
        ´ëü ¹æ¹ý :  "^\\d\\d$"

< ¿¹Á¦ >

#include "stdafx.h"

#include <windows.h>

#include <atlrx.h>

 

int _tmain(int argc, _TCHAR* argv[])

{

    char* szStr1 = "12";

    char* szStr2 = "3.21";

 

    CAtlRegExp<> re;

    CAtlREMatchContext<> mc;

 

    //¾çÀÇ Á¤¼ö üũ

    if (re.Parse(_T( "^\\d+$" )) != REPARSE_ERROR_OK)

        return 1;

    if (!re.Match( szStr1, &mc) )

        return 1;

 

    //µÎÀÚ¸®ÀÇ ¼öÀÎÁö °Ë»ç

    if (re.Parse(_T( "^\\d\\d$" )) != REPARSE_ERROR_OK)

        return 1;

    if (!re.Match( szStr1, &mc) )

        return 1;

 

    //¼Ò¼öÁ¡ À§·Î ÇÑÀÚ¸® ¼Ò¼öÁ¡ ¾Æ·¡·Î µÎÀÚ¸®

    if (re.Parse(_T( "^\\d.\\d\\d$" )) != REPARSE_ERROR_OK)

        return 1;

    if (!re.Match( szStr2, &mc) )

        return 1;

    return 0;

}

Parse()·Î Á¤±Ô Ç¥Çö½ÄÀÌ ¹Ù¸¥ Ç¥Çö¹ýÀ» ³ªÅ¸³»´ÂÁö °Ë»çÈÄ Match()·Î ÆĽÌÇÑ´Ù.

ÇÁ·ÎÁ§Æ® :  catlregexp.zip