> > > Ãâó:³×À̹ö ºí·¯±×;;; > ¿øº»:Á¦·Îº¸µå»çÀÌÆ®(?) > Èì³Ä~.... > ¿µ¹® php ¸Þ´º¾ó µµ¿ò¸»: > http://www.php.net/distributions/manual/php_manual_en.chm > ¸ñÂ÷->Å×ÀÌºí ¿Àºê ÄÁÅÙÃ÷->Regular Expression Functions (Perl-Compatible)(Á¤±Ô½Ä..¤») > > ÆÄÀÏÀ̳ª ¹®ÀÚ¿ ³»¿¡ Æ÷ÇԵǾî Àִ Ưº°ÇÑ ÆÐÅÏ(¶Ç´Â Ưº°ÇÑ Á¶°ÇÀ» ¸¸Á·ÇÏ´Â ¹®ÀÚ¿)À» °Ë»öÇϱâ À§ÇØ ¹Ì¸® Á¤ÀÇµÈ ´Ù¾çÇÑ Æ¯¼ö ¹®ÀÚµéÀÇ Á¶ÇÕÀ» Á¤±Ô½Ä(regular expression)À̶ó ÇÑ´Ù. Á¤±Ô½Ä¿¡¼ÀÇ Æ¯¼ö ¹®ÀÚ(special character)´Â ´ÙÀ½°ú °°´Ù. > > > (1) ^ (caret) : ¶óÀÎÀÇ Ã³À½À̳ª ¹®ÀÚ¿ÀÇ Ã³À½À» Ç¥½Ã > > ¿¹ : ^aaa (¹®ÀÚ¿ÀÇ Ã³À½¿¡ aaa¸¦ Æ÷ÇÔÇϸé Âü, ±×·¸Áö ¾ÊÀ¸¸é °ÅÁþ) > > (2) $ (dollar) : ¶óÀÎÀÇ ³¡À̳ª ¹®ÀÚ¿ÀÇ ³¡À» Ç¥½Ã > > ¿¹ : aaa$ (¹®ÀÚ¿ÀÇ ³¡¿¡ aaa¸¦ Æ÷ÇÔÇϸé Âü, ±×·¸Áö ¾ÊÀ¸¸é °ÅÁþ) > > (3) . (period) : ÀÓÀÇÀÇ ÇÑ ¹®ÀÚ¸¦ Ç¥½Ã > > ¿¹ : ^a.c (¹®ÀÚ¿ÀÇ Ã³À½¿¡ abc, adc, aZc µîÀº Âü, aa ´Â °ÅÁþ) > > a..b$ (¹®ÀÚ¿ÀÇ ³¡¿¡ aaab, abbb, azzb µîÀ» Æ÷ÇÔÇϸé Âü) > > (4) [] (bracket) : ¹®ÀÚÀÇ ÁýÇÕÀ̳ª ¹üÀ§¸¦ ³ªÅ¸³¿, µÎ ¹®ÀÚ »çÀÌÀÇ "-"´Â ¹üÀ§¸¦ ³ªÅ¸³¿ > > []³»¿¡¼ "^"ÀÌ ¼±ÇàµÇ¸é notÀ» ³ªÅ¸³¿ > > À̿ܿ¡µµ "¹®ÀÚŬ·¡½º"¸¦ Æ÷ÇÔÇÏ´Â [:¹®ÀÚŬ·¡½º:]ÀÇ ÇüŰ¡ ÀÖ´Ù. > > ¿©±â¿¡¼ "¹®ÀÚŬ·¡½º"¿¡´Â alpha, blank, cntrl, digit, graph, lower, > > print, space, uppper, xdigit°¡ ÀÖ´Ù. > > ÀÌ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº C¾ð¾îÀÇ <ctype.h>¸¦ ÂüÁ¶ÇÏ¸é µÈ´Ù. > > ¿¹¸¦ µé¾î [:digit:]´Â [0-9]¿Í [:alpha:]´Â [A-Za-z]¿Í µ¿ÀÏÇÏ´Ù. > > À̿ܿ¡ [:<:]¿Í [:>:]´Â ¾î¶² ´Ü¾î(¼ýÀÚ, ¾ËÆÄºª, '_'·Î ±¸¼ºµÊ)ÀÇ ½ÃÀÛ°ú ³¡ > > À» ³ªÅ¸³½´Ù. > > ¿¹ : [abc] (a, b, c Áß ¾î¶² ¹®ÀÚ, "[a-c]."°ú µ¿ÀÏ) > > [Yy] (Y ¶Ç´Â y) > > [A-Za-z0-9] (¸ðµç ¾ËÆÄºª°ú ¼ýÀÚ) > > [-A-Z]. ("-"(hyphen)°ú ¸ðµç ´ë¹®ÀÚ) > > [^a-z] (¼Ò¹®ÀÚ ÀÌ¿ÜÀÇ ¹®ÀÚ) > > [^0-9] (¼ýÀÚ ÀÌ¿ÜÀÇ ¹®ÀÚ) > > [[:digit:]] ([0-9]¿Í µ¿ÀÏ) > > (5) {} (brace) : {} ³»ÀÇ ¼ýÀÚ´Â Á÷ÀüÀÇ ¼±Ç๮ÀÚ°¡ ³ªÅ¸³ª´Â Ƚ¼ö ¶Ç´Â ¹üÀ§¸¦ ³ªÅ¸³¿ > > ¿¹ : a{3} ('a'ÀÇ 3¹ø ¹Ýº¹ÀÎ aaa¸¸ ÇØ´çµÊ) > > a{3,} ('a'°¡ 3¹ø ÀÌ»ó ¹Ýº¹ÀÎ aaa, aaaa, aaaa, ... µîÀ» ³ªÅ¸³¿) > > a{3,5} (aaa, aaaa, aaaaa ¸¸ ÇØ´çµÊ) > > ab{2,3} (abb¿Í abbb ¸¸ ÇØ´çµÊ) > > [0-9]{2} (µÎ ÀÚ¸® ¼ýÀÚ) > > doc[7-9]{2} (doc77, doc87, doc97 µîÀÌ ÇØ´ç) > > [^Zz]{5} (Z¿Í z¸¦ Æ÷ÇÔÇÏÁö ¾Ê´Â 5°³ÀÇ ¹®ÀÚ¿, abcde, ttttt µîÀÌ ÇØ´ç) > > .{3,4}er ('er'¾Õ¿¡ ¼¼ °³ ¶Ç´Â ³× °³ÀÇ ¹®ÀÚ¸¦ Æ÷ÇÔÇÏ´Â ¹®ÀÚ¿À̹ǷΠPeter, mother µîÀÌ ÇØ´ç) > > (6) * (asterisk) : "*" Á÷ÀüÀÇ ¼±Ç๮ÀÚ°¡ 0¹ø ¶Ç´Â ¿©·¯¹ø ³ªÅ¸³ª´Â ¹®ÀÚ¿ > > ¿¹ : ab*c ('b'¸¦ 0¹ø ¶Ç´Â ¿©·¯¹ø Æ÷ÇÔÇϹǷΠac, ackdddd, abc, abbc, abbbbbbbc µî) > > * (¼±Ç๮ÀÚ°¡ ¾ø´Â °æ¿ìÀ̹ǷΠÀÓÀÇÀÇ ¹®ÀÚ¿ ¹× °ø¹é ¹®ÀÚ¿µµ ÇØ´çµÊ) > > .* (¼±Ç๮ÀÚ°¡ "."À̹ǷΠÇϳª ÀÌ»óÀÇ ¹®ÀÚ¸¦ Æ÷ÇÔÇÏ´Â ¹®ÀÚ¿, °ø¹é ¹®ÀÚ¿Àº ¾ÈµÊ) > > ab* ('b'¸¦ 0¹ø ¶Ç´Â ¿©·¯¹ø Æ÷ÇÔÇϹǷΠa, accc, abb, abbbbbbb µî) > > a* ('a'¸¦ 0¹ø ¶Ç´Â ¿©·¯¹ø Æ÷ÇÔÇϹǷΠk, kdd, sdfrrt, a, aaaa, abb, °ø¹é¹®ÀÚ¿ µî) > > doc[7-9]* (doc7, doc777, doc778989, doc µîÀÌ ÇØ´ç) > > [A-Z].* (´ë¹®Àڷθ¸ ÀÌ·ç¾îÁø ¹®ÀÚ¿) > > like.* (Á÷ÀüÀÇ ¼±Ç๮ÀÚ°¡ '.'À̹ǷΠlike¿¡ 0 ¶Ç´Â Çϳª ÀÌ»óÀÇ ¹®ÀÚ°¡ Ãß°¡µÈ ¹®ÀÚ¿ÀÌ µÊ, like, likely, liker, likelihood µî) > > (7) + (asterisk) : "+" Á÷ÀüÀÇ ¼±Ç๮ÀÚ°¡ 1¹ø ÀÌ»ó ³ªÅ¸³ª´Â ¹®ÀÚ¿ > > ¿¹ : ab+c ('b'¸¦ 1¹ø ¶Ç´Â ¿©·¯¹ø Æ÷ÇÔÇϹǷΠabc, abckdddd, abbc, abbbbbbbc µî, ac´Â ¾ÈµÊ) > > ab+ ('b'¸¦ 1¹ø ¶Ç´Â ¿©·¯¹ø Æ÷ÇÔÇϹǷΠab, abccc, abb, abbbbbbb µî) > > like.+ (Á÷ÀüÀÇ ¼±Ç๮ÀÚ°¡ '.'À̹ǷΠlike¿¡ Çϳª ÀÌ»óÀÇ ¹®ÀÚ°¡ Ãß°¡µÈ ¹®ÀÚ¿ÀÌ µÊ, likely, liker, likelihood µî, ±×·¯³ª like´Â ÇØ´ç¾ÈµÊ) > > [A-Z]+ (´ë¹®Àڷθ¸ ÀÌ·ç¾îÁø ¹®ÀÚ¿) > > (8) ? (asterisk) : "?" Á÷ÀüÀÇ ¼±Ç๮ÀÚ°¡ 0¹ø ¶Ç´Â 1¹ø ³ªÅ¸³ª´Â ¹®ÀÚ¿ > > ¿¹ : ab?c ('b'¸¦ 0¹ø ¶Ç´Â 1¹ø Æ÷ÇÔÇϹǷΠabc, abcd ¸¸ ÇØ´çµÊ) > > (9) () (parenthesis) : ()´Â Á¤±Ô½Ä³»¿¡¼ ÆÐÅÏÀ» ±×·ìÈ ÇÒ ¶§ »ç¿ë > > (10) | (bar) : or¸¦ ³ªÅ¸³¿ > > ¿¹ : a|b|c (a, b, c Áß Çϳª, Áï [a-c]¿Í µ¿ÀÏÇÔ) > > yes|Yes (yes³ª Yes Áß Çϳª, [yY]es¿Í µ¿ÀÏÇÔ) > > korea|japan|chinese (korea, japan, chinese Áß Çϳª) > > (11) \ (backslash) : À§¿¡¼ »ç¿ëµÈ Ư¼ö ¹®ÀÚµéÀ» Á¤±Ô½Ä³»¿¡¼ ¹®ÀÚ¸¦ Ãë±ÞÇÏ°í ½ÍÀ» ¶§ '\'¸¦ ¼±Çà½ÃÄѼ »ç¿ëÇϸéµÊ > > ¿¹ : filename\.ext ("filename.ext"¸¦ ³ªÅ¸³¿) > > [\?\[\\\]] ('?', '[', '\', ']' Áß Çϳª) > > > Á¤±Ô½Ä¿¡¼´Â À§¿¡¼ ¾ð±ÞÇÑ Æ¯¼ö ¹®ÀÚ¸¦ Á¦¿ÜÇÑ ³ª¸ÓÁö ¹®ÀÚµéÀº ÀÏ¹Ý ¹®ÀÚ·Î Ãë±ÞÇÔ > > > Á¤±Ô½ÄÀº UnixÀÇ ´ëÇ¥ÀûÀÎ À¯Æ¿¸®Æ¼ÀÎ vi, emacs, ed, sed, awk, grep, egrep µî¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½Àº grep¿¡¼ Á¤±Ô½ÄÀ» Ȱ¿ëÇÑ ¿¹¸¦ º¸¿© ÁÖ°í ÀÖ´Ù. > > (1) $ ¸í·É¾î | grep 'Á¤±Ô½Ä' > > <= ¸í·É¾îÀÇ °á°ú¸¦ grepÀÌ ÀÔ·Â¹Þ¾Æ Á¤±Ô½ÄÀ» ÀÌ¿ëÇÏ¿© ÆÐÅÏÀ» ã¾Æ³¿ > > ¿¹ : $ who | grep 'hgkim' <= hgkimÀ̶ó´Â »ç¿ëÀÚ°¡ login ÇØ ÀÖ´ÂÁö¸¦ ¾Ë¾Æº½ > > $ ls -al | grep '^d.*' <= ls -al ÀÇ °á°ú 'd'·Î ½ÃÀÛÇÏ´Â ¶óÀÎ(Áï µð·ºÅ丮µé) > > ¸¸À» Ãâ·Â > > $ ls -al | grep '^d.*' <= ls -al ÀÇ °á°ú 'd'·Î ½ÃÀÛÇÏ´Â ¶óÀÎ(Áï µð·ºÅ丮µé) > > ¸¸À» Ãâ·Â > > $ ls -al | grep '^[^d]..x..x..x' <= µð·ºÅ丮´Â Á¦¿ÜÇϰí("[^d]") ´©±¸³ª > > ½ÇÇà°¡´ÉÇÑ ÆÄÀÏ("..x..x..x")µé ã±â > > (2) $ grep 'Á¤±Ô½Ä' ÆÄÀÏÀ̸§ > > <= ÆÄÀÏÀ» ÀÔ·Â¹Þ¾Æ Á¤±Ô½ÄÀ» ÀÌ¿ëÇÏ¿© ÆÐÅÏÀ» Âþ¾Æ³¿ > > ¿¹: $ grep 'telnet' /etc/inetd.conf > > > ÀÌ¿ÜÀÇ ¸í·É¾îµéµµ grep°ú À¯»çÇÑ ÇüÅ·ΠÀÌ¿ëµÈ´Ù. µû¶ó¼ Á¤±Ô½ÄÀ» Àß ÀÌ¿ëÇϸé À¯´Ð½ºÀÇ È°¿ëÀÌ ¹è°¡ µÉ °ÍÀÌ´Ù. > > > > PHP¿¡¼´Â Á¤±Ô½Ä°ú °ü·ÃÇÏ¿© ´ÙÀ½ÀÇ ³×°¡Áö ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù. > > > int ereg(string givenPattern, string givenString, array matched); > > - givenStringÀ» "string1stringAstring2stringBstring3 ... string9stringI" ·Î ÁÖ¾îÁ® ÀÖ´Ù°í ÇÏÀÚ. À̶§ stringA, stringB, ... , stringI´Â NULL À̾ »ó°üÀÌ ¾ø´Ù(Áï givenStringÀº "string1string2string3 ... string9" ÀÎ °æ¿ìÀÓ). > > - givenStringÀÌ À§¿Í °°ÀÌ ÁÖ¾îÁø °æ¿ì, > > givenPatternÀº "(pattern1)stringA(pattern2)stringB(pattern3) ... (pattern9)stringI"·Î ÀÔ·ÂÇÏ¿©¾ß ÇÑ´Ù. Áï pattern1, pattern2, ..., pattern9´Â °¢°¢ string1, string2, ... , string9¿¡¼ ã°íÀÚÇÏ´Â Á¤±Ô½ÄÀÎ °ÍÀÌ´Ù. > > - À̶§ pattern1ÀÌ string1¿¡¼ ¹ß°ßÇÑ ÆÐÅÏÀº $matched[1]¿¡ ÀúÀåµÇ°í, pattern2°¡ string2¿¡¼ ¹ß°ßÇÑ ÆÐÅÏÀº $matched[2]¿¡ ÀúÀåµÇ°í, ..., pattern9°¡ string9¿¡¼ ¹ß°ßÇÑ ÆÐÅÏÀº $matched[9]¿¡ ÀúÀåµÈ´Ù. PHP3ÀÇ °æ¿ì ereg¿¡¼´Â ÃÖ´ë 9°³ ±îÁöÀÇ patternÀ» ãÀ» ¼ö ÀÖµµ·Ï ¼³Á¤µÇ¾î ÀÖÀ½¿¡ À¯ÀÇÇÏÀÚ. > > - ±×¸®°í $matched[0]¿¡´Â $matched[1]stringA$matched[2]stringB ... $matched[9]stringI°¡ ÀúÀåµÈ´Ù. > > - ereg°¡ ¹ÝȯÇÏ´Â °ªÀº $matched[0]¿¡ ÀúÀåµÈ ¹®ÀÚ¿ÀÇ °³¼öÀÌ´Ù. > > - ereg´Â case sensitive > > - eregi´Â case insensitive > > > ¿¹1 : > > ÄÚµå => print(ereg ("(.*)ef([abc].*)","abcdefabc",$matched)); > > print("<br>"); > > while (list($a,$b)=each($matched)) > > if ($b) > > print("$a, $b <br>"); > > °á°ú => 9 > > 0, abcdefabc > > 1, abcd > > 2, abc > > ¿¹2 : > > ÄÚµå => print(ereg ("(.*)d(.*)e(.*)qrs(.*)","abcdefghijklmnopqrstuvwxyz",$matched)); > > print("<br>"); > > while (list($a,$b)=each($matched)) > > if ($b) > > print("$a, $b <br>"); > > °á°ú => 26 > > 0, abcdefghijklmnopqrstuvwxyz > > 1, abc > > 3, fghijklmnop > > 4, tuvwxyz > > ¿¹ 3 : > > ÄÚµå => $date="1999-11-17"; > > if (ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) > > print("$regs[3].$regs[2].$regs[1]"); > > else print("Invalid date format: $date"); > > °á°ú => 17.11.1999 > > ¿¹ 4 : > > ÄÚµå => $joomin="711011-1234567"; > > if (ereg("([0-9]{2})([01]{1}[09]{1}[0-3]{1}[0-9]{1})-([12]{1}[0-9]{6})",$date, $regs)) > > print("Valid"); > > else print("Invalid format: $joomin"); > > > int eregi(string givenPattern, string givenString, array matched); > > - eregÀÇ 'case insensitive' ¹öÁ¯ > > > ¿¹ : > > ÄÚµå => $email="xs9_tx-abc.yyy_c@cne.kyungsung.ac.kr"; > > eregi("(^[_\.0-9a-z-]+)@(([0-9a-z][0-9a-z-]+\.)+)([a-z]{2,3}$)",$email,$matched); > > while (list($a,$b)=each($matched)) > > if ($b) print("$a, $b <br>"); > > > °á°ú => 0, xs9_tx-abc.yyy_c@cne.kyungsung.ac.kr > > 1, xs9_tx-abc.yyy_c > > 2, cne.kyungsung.ac. > > 3, ac. > > 4, kr > > > > ÄÚµå => eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$email,$matched); > > while (list($a,$b)=each($matched)) > > if ($b) print("$a, $b <br>"); > > °á°ú => 0, xs9_tx-abc.yyy_c@cne.kyungsung.ac.kr > > 1, ac. > > > > string ereg_replace(string givenPattern, string replacementPattern, string givenString); > > - givenString¿¡¼ givenPattern¿¡ ºÎÇÕÇÏ´Â ÅØ½ºÆ®(matched text)¸¦ ã¾Æ¼, > > replacementPatternÀ¸·Î ´ëü > > - givenPatternÀÌ "(ÆÐÅÏ)"À¸·Î ¹ÀÎ ¹®ÀÚ¿µéÀ» Æ÷ÇÔÇϰí ÀÖÀ¸¸é, replacementPattern¿¡´Â ÀÌ¿¡ ´ëÀÀÇÏ´Â "\\digit(¹®ÀÚ¿)" ÇüÅÂÀÇ ¹®ÀÚ¿µéÀ» Æ÷ÇÔÇϰí ÀÖ¾î¾ß ÇÑ´Ù(digit´Â 0, 1, ... ,9 Áß Çϳª). ±×¸®°í givenStringÀº "(ÆÐÅÏ)"À» ÀÌ¿ëÇØ ãÀº °á°úµéÀ» "\\digit(¹®ÀÚ¿)"¿¡ ÀÖ´Â "¹®ÀÚ¿"µé·Î ´ëüÇÏ°Ô µÈ´Ù. "\\0" ´Â givenString Àüü¿¡ ´ëÇØ "(ÆÐÅÏ)"ÀÇ °á°ú¸¦ Àû¿ëÇÒ ¶§ ÀÌ¿ëµÈ´Ù. > > - º¯°æµÈ ¹®ÀÚ¿À» ¸®ÅÏ > > - case sensitive > > > ¿¹ : > > ÄÚµå => $string = "This is a test"; > > print(ereg_replace(" is", " was",$string)); print("<br>"); > > print(ereg_replace("( )is","\\1was",$string)); print("<br>"); > > print(ereg_replace("(( )is)","\\2was",$string)); print("<br>"); > > print(ereg_replace("(( )is)(( )a)(( )test)", "\\1was\\2an\\3exam",$string)); > > °á°ú => "This was a test"; > > "This was a test"; > > "This was a test"; > > "This was an exam"; > > > ¿¹ 2 : redundant whitespace ¾ø¾Ö±â > > ÄÚµå => $str ="~ s/\s+/ /g"; > > $str = eregi_replace("[[:space:]]+", " ", $str); > > print("$str<br>"); > > °á°ú => ~ s/\s+/ /g > > > string eregi_replace(string givenPattern, string replacementPattern, string givenString); > > - ereg_replaceÀÇ 'case insensitive' ¹öÁ¯ > > [Æß] http://phpschool.com/bbs2/inc_view.html?id=11581&code=tnt2 >
* ¿ÞÂÊÀÇ ÀÚµ¿µî·Ï¹æÁö Äڵ带 ÀÔ·ÂÇϼ¼¿ä.