VC++¿¡¼­µµ Regular ExpressionÀ¸·Î °Ë»öÇÒ ¼ö ÀÖ´Ù


1.¿ä¾à

VC++¿¡¼­ Regular ExpressionÀ¸·Î °Ë»öÇÏ´Â ¹æ¹ýÀ» ¼Ò°³ÇÕ´Ï´Ù.


2.º»¹®

Reqular Expression(Á¤±ÔÇ¥Çö½Ä)À» ÀÌ¿ëÇÏ¿© °Ë»öÇÏ¸é ¿©·¯ º¹ÀâÇÑ Á¶°ÇÀ» ÁÖ¾î ¼Ò½ºÄڵ带 °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù. VC++¿¡¼­µµ UnixÀÇ grepÀ̳ª vi editor¿Í °°ÀÌ Regular ExpressionÀ» ÀÌ¿ëÇÑ °Ë»öÀ» Áö¿øÇÏ´Â µ¥ ¹æ¹ýÀº ¾ÆÁÖ °£´ÜÇÕ´Ï´Ù. ã±â(¶Ç´Â ÆÄÀÏ¿¡¼­ ã±â) â¿¡ ÀÖ´Â ¿É¼Ç Áß Regular expression äũÇϰí Á¤±ÔÇ¥Çö½ÄÀ¸·Î ÀûÀº µÚ °Ë»öÇÏ¸é ³¡ÀÔ´Ï´Ù. ³Ê¹« °£´ÜÇÑ °É ÆÁÀ̶ó°í ¾²´Â °Ç ¾Æ´ÑÁö ¸ð¸£°Ú±º¿ä.

¾Æ·¡´Â Á¤±ÔÇ¥Çö½ÄÀ» Á¤¸®ÇØ ³õÀº °ÍÀÔ´Ï´Ù


. : newlineÀ» Á¦¿ÜÇÑ ÀÓÀÇÀÇ ÇѱÛÀÚ 

\a : alarm 

[a-z0-9]: a-z ±îÁöÀÇ ¿µ¹®ÀÚ¿Í ¼ýÀÚ ÁßÀÇ ÇÑ ±ÛÀÚ 

[^a-z0-9] : a-z±îÁöÀÇ ¿µ¹®ÀÚ¿Í ¼ýÀÚ°¡ ¾Æ´Ñ ÇÑ ±ÛÀÚ 

\d : 10Áø¼ö Á¤¼ö ÇѱÛÀÚ [0-9] 

\D : 10Áø¼ö Á¤¼ö°¡ ¾Æ´Ñ ÇÑ ±ÛÀÚ[^0-9] 

\w : ¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ[a-zA-Z0-9-] 

\W : \w°¡ ¾Æ´Ñ ±ÛÀÚ[^a-zA-Z0-9-] 

\s : °ø¹é¹®ÀÚ ÇѱÛÀÚ(space, tab, newline) 

\S : \s°¡ ¾Æ´Ñ ÇÑ ±ÛÀÚ \n : newline 

\r : carriage return 

\t : tab 

\f : form feed 

\b : [] ³»ºÎ¿¡¼­ »ç¿ëµÉ °æ¿ì backspace 

\0,\000 : ³Î¹®ÀÚ 

\nnn : nnnÀ̶ó´Â 8Áø¼öÀÇ °ªÀ» °¡Áö´Â ascii ÇѱÛÀÚ 

\xnn : nnÀ̶ó´Â 16Áø¼öÀÇ °ªÀ» °¡Áö´Â ASCII ÇѱÛÀÚ 

\cX : Ctrl+X¿¡ ÇØ´çÇÏ´Â ÇѱÛÀÚ 

\metachar : \|, \*, \\, \(, \), \[, \{, \^, \$, \+, \?, \.(|,*,\,(......ÀÇ Àǹ̸¦ °¡Áø´Ù) 

(abc) : µÚ¿¡ °¡¼­ ÂüÁ¶µÉ abc¶ó´Â ¹®ÀÚ¿­ 

\1 : ù ¹øÂ° ÂüÁ¶ ¹®ÀÚ¿­ 

\2 : µÎ ¹øÂ° ÂüÁ¶ ¹®ÀÚ¿­ 

\n : n¹øÂ° ÂüÁ¶ ¹®ÀÚ¿­ 

x? : x°¡ 1¹ø ³ª¿ÀÁö ¾Ê°Å³ª 1¹ø ³ª¿À´Â °æ¿ì 

x* : x°¡ 0¹ø ÀÌ»ó ¹Ýº¹µÇ´Â ¹®ÀÚ¿­ 

x+ : x°¡ 1¹ø ÀÌ»ó ¹Ýº¹µÇ´Â ¹®ÀÚ¿­ 

x{m,n} : x°¡ m¹ø ÀÌ»ó, n¹ø ¹Ì¸¸À¸·Î ³ª¿À´Â ¹®ÀÚ¿­ 

x{m,} : x°¡ m¹ø ÀÌ»ó ³ª¿À´Â ¹®ÀÚ¿­ 

x{m} : x°¡ m¹ø ³ª¿À´Â ¹®ÀÚ¿­ 

abc : a¿Í b¿Í c°¡ ¿¬¼ÓÀ¸·Î ºÙ¾î¼­ ³ª¿À´Â ¹®ÀÚ¿­ 

abc| def| ghi : ¹®ÀÚ¿­ abc, def, ghi ÁßÀÇ Çϳª¿¡ ÇØ´çµÇ´Â °æ¿ì 



À§Ä¡Ç¥½ÃÁ¶°Ç 



\b : [] ¹Ù°°¿¡¼­ \w¿Í \W°¡ ¼­·Î ¹Ù²î°í ÀÖ´Â word boundary¸¦ ÀǹÌÇÔ 

\B : \b°¡ ¾Æ´Ñ °æ¿ì 

\A : ½ºÆ®¸µÀÇ Ã³À½ À§Ä¡ 

\Z : ½ºÆ®¸µÀÇ ¸¶Áö¸· À§Ä¡ 

\G : ¸¶Áö¸·À¸·Î m//g¿¡ ÀÇÇØ ¸ÅÄ¡°¡ µÈ À§Ä¡ 

^ : ½ºÆ®¸µÀÇ °¡Àå óÀ½ À§Ä¡ Ç¥½Ã. /m modifier°¡ ÀÖÀ¸¸é ¶óÀÎÀÇ Ã³À½À» ÀǹÌÇÑ´Ù. 

$ : ½ºÆ®¸µÀÇ °¡Àå ¸¶Áö¸· À§Ä¡Ç¥½Ã /m modifier°¡ ÀÖÀ¸¸é ¶óÀÎÀÇ ³¡À» ÀǹÌÇÑ´Ù. 

(?=...) : ...À§Ä¡¿¡ ³õÀÏ ¹®ÀÚ¿­ÀÌ ¸ÅÄ¡µÈ´Ù´Â Á¶°Ç 

(?!...) : ...À§Ä¡¿¡ ³õÀÏ ¹®ÀÚ¿­ÀÌ ¸ÅÄ¡µÇÁö ¾Ê´Â´Ù´Â Á¶°Ç 


3.¿¹Á¦

Àú´Â ¸ÞÅ©·Î°¡ Á¤ÀÇµÈ ºÎºÐÀ» ãÀ» ¶§ ÀÌ ±â´ÉÀ» ÀÌ¿ëÇϰï ÇÕ´Ï´Ù. ´ë·®ÀÇ ¼Ò½º¿¡¼­ ¸ÅÅ©·ÎÀÇ Á¤ÀÇµÈ ºÎºÐÀ» ã±â À§ÇØ find in files¸¦ ÀÌ¿ëÇÏ¸é ³Ê¹« ¸¹Àº °á°ú°¡ ³ª¿À´Â µî ±ÍÂú½À´Ï´Ù. ¹°·Ð ¿©±â¼­ ´Ù½Ã find¸¦ ÇÏ¿© defineÀ» ãÀ¸¸é µÇÁö¸¸ Á¤±ÔÇ¥Çö½ÄÀ» ÀÌ¿ëÇØ¼­ °£´ÜÈ÷ ãÀ» ¼öµµ ÀÖ½À´Ï´Ù.

Regular expressionÀ» äũÇϰí
#define[ \t]+MY_MACROÀ»°Ë»öÇϸé Çѹ濡 ã¾Æ ÁÙ °ÍÀÔ´Ï´Ù.
¿©±â¼­ []´Â ¼±ÅÃ, \t´Â tab, +´Â ÇϳªÀÌ»óÀ» ÀǹÌÇÕ´Ï´Ù.


- 2001.08.13 Smile Seo -