¾Ë°í ÀÖ¾î¾ß ÇÒ 8°¡Áö Á¤±Ô½Ä Ç¥Çö from nettuts+ - ½ÇÀü
¾Ë°í ÀÖ¾î¾ß ÇÒ 8°¡Áö Á¤±Ô½Ä Ç¥Çö from nettuts+
nettuts+¿¡ VasiliÀÌ ¾´ À¯¿ëÇÑ Á¤±Ô½Ä Ç¥Çö¿¡ ´ëÇÑ ±ÛÀ» ¿Ã·Á¼ ³»¿ë Á¤¸®ÇÕ´Ï´Ù. Á¤±Ô½Ä¸¸ Àß ½áµµ ValidationÀ̳ª StringÀ» ´Ù·ç±â°¡ ¹«Ã´ ÆíÇÒÅÙµ¥ ¾µ¶§¸¶´Ù Çò°¥¸®°í ¾à°£Àº ¾î·Æ°Ô ´À²¸Áö°í ½±°Ô ´Ù°¡°¡ÁöÁö ¾Ê´Â°Ô Á¤±Ô½ÄÀÎ°Í °°½À´Ï´Ù.
Vasili´Â Á¤±Ô½Ä¿¡ ´ëÇؼ Àß ¸ð¸£¸é Regular Expressions for Dummies ½ºÅ©¸°Ä³½ºÆ® ½Ã¸®Á º¸±â ±ÇÇÏ°í ÀÖ½À´Ï´Ù. ½Ã°£³»¼ º¸¸é ²Ï µµ¿òÀÌ µÉµí ÇÕ´Ï´Ù. ÀÚ¸® Àâ°í ½ºÅ©¸°Ä³½ºÆ® º¸°Ô´Â Àß ¾ÈµÇ´Â°Í °°½À´Ï´Ù. ±ÛÀ» Àо... ¤¾¤¾
Á¤±ÔÇ¥Çö½ÄÀ» °øºÎÇصµ ¸·»ó Àû¿ëÇÏ·Á¸é ¾à°£ ¸·¸·ÇÏ°í Çò°¥¸®±â ¸¶·ÃÀε¥ À¥°³¹ßÇÒ ¶§ º¸Åë ¸¹ÀÌ »ç¿ëÇÒ ¸¸ÇÑ ³»¿ëÀ» À§ÁÖ·Î ¼³¸íÇØ ÁÖ¾ú±â ¶§¹®¿¡ ÀÌÇØÇϱ⵵ ½±°í È°¿ëÇؼ ¾²±â¿¡ ²Ï³ª À¯¿ëÇÒ µí º¸ÀÔ´Ï´Ù. (À§¿¡µµ °£´ÜÈ÷ ¹àÇûÁö¸¸ nettuts+ÀÇ ¿Ã¶ó¿Â Æ÷½ºÆÃÀ» ¹ø¿ª,Á¤¸®ÇÑ ³»¿ëÀÔ´Ï´Ù.) °£´ÜÇÑ Á¤±ÔÇ¥Çö½Ä ¹®¹ýÀº Àü¿¡ ¿Ã¸° Æ÷½ºÆÃÀ» Âü°íÇÏ½Ã¸é µÉ °Í °°½À´Ï´Ù.
Matching a Username
¹®ÀÚ¿ÀÇ ½ÃÀۺκÐÀ» ã´Â ^ ´ÙÀ½¿¡ ¼Ò¹®ÀÚ(a-z)³ª ¼ýÀÚ(0-9), ¾ð´õ½ºÄÚ¾î(_), ÇÏÀÌÇÂ(-)°¡ ³ª¿Ã ¼ö ÀÖ°í {3, 16}Àº ¾ÕÀÇ Ä³¸¯Å͵é( [a-z0-9_-] )ÀÌ ÃÖ¼Ò 3°³¿¡¼ 15°³ ÀÌÇÏ·Î ³ª¿Í¾ß ÇÏ°í ¹®ÀÚ¿ÀÇ ³¡À» ÀǹÌÇÏ´Â $°¡ ¸¶Áö¸·¿¡ ³ª¿É´Ï´Ù.
MatchµÇ´Â ½ºÆ®¸µ : my-us3r_n4m3
MatchµÇÁö ¾Ê´Â ¹®ÀÚ¿ : th1s1s-wayt00_l0ngt0beausername (³Ê¹« ±è)
Matching a Password
usernameºÎºÐ°ú ¾ÆÁÖ À¯»çÇÕ´Ï´Ù¸¸ À¯ÀÏÇÏ°Ô ´Ù¸¥ ºÎºÐÀº ±ÛÀÚ¼ö°¡ 3~16ÀÚ°¡ ¾Æ´Ï¶ó 6~18ÀÚ¶ó´Â ºÎºÐ( {6,18} )ÀÔ´Ï´Ù.
MatchµÇ´Â ½ºÆ®¸µ : myp4ssw0rd
MatchµÇÁö ¾Ê´Â ¹®ÀÚ¿ : mypa$$w0rd (´Þ·¯($)Ç¥½Ã°¡ Æ÷ÇԵǾî ÀÖÀ½)
Matching a Hex value
À̹ø¿¡¼ ¹®ÀÚ¿ÀÇ ½ÃÀÛÀ» ã´Â ^·Î ½ÃÀÛÇÕ´Ï´Ù. ±× ´ÙÀ½ number sign(#)Àº µÚ¿¡ ¹°À½Ç¥(?)°¡ Àֱ⠶§¹®¿¡ ¿É¼ÇÀÔ´Ï´Ù. ¹°À½Ç¥(?)´Â ±× ¾Õ¿¡ ³ª¿Â ij¸¯ÅÍ°¡(¿©±â¼´Â number sign)ÀÌ ¼±ÅûçÇ×(À־ µÇ°í ¾ø¾îµµ µÇ´Â)ÀÓÀ» ÀǹÌÇÕ´Ï´Ù. ±× ´ÙÀ½¿¡ ³ª¿À´Â ±×·ì(°ýÈ£ ¾È¿¡ ÀÖ´Â)¿¡¼ 2°¡Áö °æ¿ì¸¦ °¡Áú ¼ö ÀÖ½À´Ï´Ù. ù¹ø°´Â a¿Í f»çÀÌÀÇ ¼Ò¹®ÀÚ³ª ¼ýÀÚ°¡ 6¹ø³ª¿À´Â °ÍÀÔ´Ï´Ù. ¼¼·Î¹Ù(|)´Â 3°³ÀÇ a¿Í f»çÀÌÀÇ ¼Ò¹®ÀÚ³ª ¼ýÀÚ°¡ ´ë½Å ³ª¿Ã¼öµµ ÀÖÀ½À» À¸¹ÌÇÕ´Ï´Ù. ¸¶Áö¸·À¸·Î ¹®ÀÚ¿ÀÇ ³¡À» ÀǹÌÇÏ´Â $°¡ À§Ä¡ÇÕ´Ï´Ù.
6°³ÀÇ ¹®ÀÚ¿À» ¾Õ¿¡ µÐ ÀÌÀ¯´Â #ffffff°°Àº Hex°ªÀ» Æļ°¡ Àâ¾Æ³»µµ·Ï Çϱâ À§ÇÑ °ÍÀ¸·Î ¹Ý´ë·Î 3°³ÀÇ ¹®ÀÚ¿ °Ë»ç¸¦ ¾Õ¿¡ µÎ¾ú´Ù¸é Æļ´Â µÚÀÇ 3°³ÀÇ f´Â »©·Î ¿ÀÁ÷ #fff¸¸À» Àâ¾Æ³ÂÀ» °ÍÀÔ´Ï´Ù.
MatchµÇ´Â ½ºÆ®¸µ : #a3c113
MatchµÇÁö ¾Ê´Â ¹®ÀÚ¿ : #4d82h4 (h °¡ Æ÷ÇԵǾî ÀÖÀ½)
Matching a Slug
mod_rewrite³ª pretty URLÀ» »ç¿ëÇØ º»ÀûÀÌ ÀÖ´Ù¸é ÀÌ Á¤±ÔÇ¥Çö½ÄÀ» »ç¿ëÇÏ°Ô µÉ °ÍÀÔ´Ï´Ù. ½ÃÀÛ ¹®ÀÚ¿ÀÎ ^°¡ óÀ½¿¡ ³ª¿À°í µÚÀÌ¾î ¼Ò¹®ÀÚ, ¼ýÀÚ, ÇÏÀÌÇÂ(-)ÀÌ ÇÑ°³ ¶Ç´Â ÇÑ°³ÀÌ»ó(+±âÈ£)³ª¿À°í ¸¶Áö¸·À¸·Î ¹®ÀÚ¿ÀÇ ³¡ÀÎ $°¡ ³ª¿É´Ï´Ù.
MatchµÇ´Â ½ºÆ®¸µ : my-title-here
MatchµÇÁö ¾Ê´Â ¹®ÀÚ¿ : my_title_here (¾ð´õ½ºÄÚ¾î( _ ) °¡ Æ÷ÇԵǾî ÀÖÀ½)
Matching an Email
¹®ÀÚ¿ÀÇ ½ÃÀÛÀÎ ^·Î ½ÃÀÛÇÏ°í ù¹ø° ±×·ì(°ýÈ£ ¾È)¿¡¼ 1°³ ¶Ç´Â ±× ÀÌ»óÀÇ ¼Ò¹®ÀÚ, ¼ýÀÚ, ¾ð´õ½ºÄÚ¾î( _ ), Á¡(.), ÇÏÀÌÇÂ(-)°¡ ³ª¿É´Ï´Ù. escapeÇÏÁö ¾ÊÀº Á¡(.)Àº ´Ù¸¥ ¹®ÀÚ¸¦ ÀǹÌÇϱ⠶§¹®¿¡ Á¡(.)Àº À̽ºÄÉÀÌÇÁ ÇØÁÝ´Ï´Ù.(\.) ±× µÚ¿¡ ¾Ü ±âÈ£(@)°¡ ³ª¿À°í ±× ´ÙÀ½ 1°³¶Ç´Â ±× ÀÌ»óÀÇ ¼Ò¹®ÀÚ, ¼ýÀÚ, ¾ð´õ½ºÄÚ¾î( _ ), Á¡(.), ÇÏÀÌÇÂ(-)À¸·Î ±¸¼ºµÈ µµ¸ÞÀθíÀÌ ¿É°í ±× ÈÄ Á¡(À̽ºÄÉÀÌÇÁµÈ)ÀÌ ¼Ò¹®ÀÚ¿Í Á¡À¸·Î µÈ 2~6°³ÀÇ ¹®ÀÚ¿ÀÌ ¿É´Ï´Ù. 2~6°³·Î ÇÑ ÀÌÀ¯´Â .co.krÀ̳ª .ny.us°°Àº ±¹°¡ TLD(Top-Level-Domain)¶§¹®ÀÌ¸ç ¸¶Áö¸·À¸·Î ¹®ÀÚ¿ÀÇ ³¡($)ÀÎ ¿É´Ï´Ù.
MatchµÇ´Â ½ºÆ®¸µ : john@doe.com
MatchµÇÁö ¾Ê´Â ¹®ÀÚ¿ : john@doe.something (TLS°¡ ³Ê¹« ±è)
Matching a URL
ÀÌ Á¤±ÔÇ¥Çö½ÄÀº À§¿¡ ³ª¿Â Á¤±ÔÇ¥Çö½ÄÀÇ ÃÖÁ¾º»À̶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ù¹ø° ±×·ìÀº ¸ðµÎ ¿É¼ÇÀε¥ ÀÌ°ÍÀº URLÀÌ "http://"³ª "https://" ¶Ç´Â µÑ´Ù ¾øÀÌ ½ÃÀÛÇϵµ·Ï ÇÑ´Ù. sµÚ¿¡ ¹°À½Ç¥(?)´Â URLÀÌ http¿Í https¸¦ ¸ðµÎ Çã¿ëÇÑ´Ù. ÀÌ ±×·ìÀüü¸¦ ¼±ÅûçÇ×À¸·Î Çϱâ À§Çؼ µÚ¿¡ ¹°À½Ç¥(?)¸¦ Ãß°¡Çß½À´Ï´Ù.
´ÙÀ½Àº µµ¸ÞÀθíÀ¸·Î ÇÑ°³ÀÌ»óÀÇ ¼ýÀÚ, ¹®ÀÚ¿, Á¡(.), ÇÏÀÌÇÂ(-)µÚ¿¡ ¶Ç´Ù¸¥ Á¡(.)ÀÌ ¿À°í ±× µÚ¿¡ 2~6°³ÀÇ ¹®ÀÚ¿Í Á¡ÀÌ ¿É´Ï´Ù. À̾îÁö´Â ºÎºÐÀ» Ãß°¡ÀûÀÎ ÆÄÀÏ°ú µðÅØÅ丮¿¡ ´ëÇÑ ºÎºÐÀ¸·Î ÀÌ ±×·ì¿¡¼´Â °¹¼ö¿¡ °ü°è¾øÀÌ ½½·¡½¬(/), ¹®ÀÚ, ¼ýÀÚ, ¾ð´õ½ºÄÚ¾î(_), ½ºÆäÀ̽º, Á¡(.), ÇÏÀÌÇÂ(-)ÀÌ ³ª¿Ã ¼ö ÀÖÀ¸¸ç ÀÌ ±×·ìÀº ¸¹Àº ¼öÀÇ µð·ºÅ丮¿Í ÆÄÀÏ°ú ¸ÅÄ¡µË´Ï´Ù. ¹°À½Ç¥(?)´ë½Å º°Ç¥(*)¸¦ »ç¿ëÇÑ °ÍÀº º°Ç¥´Â 0 ¶Ç´Â 1ÀÌ ¾Æ´Ñ 0 ¶Ç´Â 1°³ÀÌ»óÀ» ÀǹÌÇϱ⠶§¹®ÀÔ´Ï´Ù. ¸¸¾à ¹°À½Ç¥(?)¸¦ »ç¿ëÇß´Ù¸é ¿ÀÁ÷ ÇÑ°³ÀÇ ÆÄÀÏ/µð·ºÅ丮¸¸ ¸ÅÄ¡µÉ ¼ö ÀÖ¾úÀ» °ÍÀÔ´Ï´Ù.
±× µÚ¿¡ ½½·¡½Ã(/) ¸ÅÄ¡µÇÁö¸¸ ÀÌ°ÍÀº ¼±ÅûçÇ×ÀÌ¸ç ¸¶Áö¸·À¸·Î ¹®ÀÚ¿ÀÇ ³¡($)ÀÌ ³ªÅ¸³³´Ï´Ù.
MatchµÇ´Â ½ºÆ®¸µ : http://net.tutsplus.com/about
MatchµÇÁö ¾Ê´Â ¹®ÀÚ¿ : http://google.com/some/file!.html (´À³¦Ç¥°¡ Æ÷ÇԵǾî ÀÖÀ½)
Matching an IP Address
ÀÚ, Àú´Â °ÅÁþ¸»À» ÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ Á¤±ÔÇ¥Çö½ÄÀº Á¦°¡(Vasili) ÀÛ¼ºÇÏÁö ¾Ê¾Ò°í ÀÌ°÷¿¡¼ °¡Á®¿Ô½À´Ï´Ù.
Á¤±Ô½ÄÀÌ Ã¹¹ø°·Î Àâ¾Æ³½ ±×·ìÀº ½ÇÁ¦·Î ¸ÅÄ¡µÈ(captured)µÈ ±×·ìÀÌ ¾Æ´Õ´Ï´Ù. ¿Ö³ÄÇϸé ?: °¡ ±×¾È¿¡ À§Ä¡ÇÏ°í Àֱ⠶§¹®ÀÔ´Ï´Ù. ?:´Â Æļ°¡ ÀÌ ±×·ìÀ» Àâ¾Æ³»Áö ¾Êµµ·Ï ÇÕ´Ï´Ù. ¶ÇÇÑ ÀÌ ÀâÈ÷Áö ¾Ê´Â ±×·ìÀº 3¹ø ¹Ýº¹µÇ±â¸¦ ¿øÇÕ´Ï´Ù.(±×·ìÀÇ ³¡¿¡ {3}) ÀÌ ±×·ìÀº ¶Ç´Ù¸¥ ¼ºê±×·ì°ú Á¡(.)À» ´ã°í ÀÖ°í Æļ´Â Á¡(.)ÀÌ µÚ¿¡ ÀÖ´Â ¼ºê±×·ìÀ» ¸ÅÄ¡ÇÏ·Á°í ã½À´Ï´Ù.
¼ºê±×·ìÀº ¶Ç´Ù¸¥ ÀâÈ÷Áö ¾Ê´Â(non-captured) ±×·ìÀÔ´Ï´Ù. ÀÌ°ÍÀº 0~5°¡ µÚ¿¡ ¿À´Â "25"°Å³ª 0~4¿Í ¸ðµç ¼ýÀÚ°¡ µÚ¿¡ ¿À´Â "2"À̰ųª ¿É¼ÇÀÌ 0 ¶Ç´Â 2°³ÀÇ ¼ýÀÚ°¡ À̾îÁö´Â ¼ýÀÚµéÀÇ ¹®ÀÚ¼ÂÀÇ ¹À½ÀÔ´Ï´Ù.
ÀÌ 3°¡Áö°¡ ¸ÅÄ¡µÈ ÀÌÈÄ¿¡ ´ÙÀ½ ĸÃĵÇÁö ¾Ê´Â ±×·ìÀ¸·Î µé¾î°©´Ï´Ù. ÀÌ°ÍÀº 0~5°¡ À̾îÁö´Â "25" ¶Ç´Â 0~4¿Í ÇÔ²² ¿À´Â "2" ±×¸®°í ¸¶Áö¸·¿¡ ´Ù¸¥ ¼ýÀÚ(0À̳ª µÎÀÚ¸® ¼ýÀÚ)°¡ ¿É´Ï´Ù.
¸¶Áö¸· ¹®ÀÚ($)¿Í ÇÔ²² ÀÌ º¹ÀâÇÑ Á¤±ÔÇ¥Çö½ÄÀÌ ³¡³³´Ï´Ù.
MatchµÇ´Â ½ºÆ®¸µ : 73.60.124.136
MatchµÇÁö ¾Ê´Â ¹®ÀÚ¿ : 256.60.124.136 (ù¹ø° ¼ýÀÚ´Â 250~255À̾î¾ß ÇÔ)
Matching an HTML Tag
ÀÌ Æ÷½ºÆÿ¡¼ °¡Àå À¯¿ëÇÑ Á¤±ÔÇ¥Çö½Ä ÁßÀÇ ÇϳªÀÔ´Ï´Ù. ÀÌ°ÍÀº ¾î¶² HTMLű׵µ ¸ÅÄ¡ÇÒ ¼ö ÀÖ°í ÀϹÝÀûÀ¸·Î ¶óÀÎÀÇ Ã¹¹ø°¿¡¼ ½ÃÀÛÇÕ´Ï´Ù.
ù¹ø°·Î ¿À´Â °ÍÀº ű×À̸§ÀÔ´Ï´Ù. ÀÌ°ÍÀº ¹Ýµå½Ã ÇÑ°³ÀÌ»óÀÇ ¹®ÀÚ°¡ µÇ¾î¾ß Çϸç ù¹ø°·Î ÀâÈ÷´Â ±×·ìÀ̱⵵ ÇÕ´Ï´Ù. ÀÌ°ÍÀº ´Ý´Âű׸¦ Àâ¾ÒÀ» ¶§ ã¾Æ¾ß ÇÒ °ªÀÔ´Ï´Ù. ´ÙÀ½¿¡´Â ű×ÀÇ ¼Ó¼ºÀÔ´Ï´Ù. ÀÌ°ÍÀº >¸¦ Á¦¿ÜÇÑ ¾î¶² ¹®ÀÚµµ ¿Ã ¼ö ÀÖ½À´Ï´Ù. ¿É¼Ç»çÇ×ÀÌÁö¸¸ 1°³ÀÌ»óÀÇ Ä³¸¯ÅÍ¿Í ¸ÅÄ¡µÇ±â¸¦ ¿øÇϱ⠶§¹®¿¡ º°Ç¥°¡ »ç¿ëµÇ¾ú½À´Ï´Ù. Ç÷¯½º±âÈ£´Â ¼Ó¼º°ú °ªÀ» ÀÌ·ç°í º°Ç¥´Â ¿øÇÏ´Â ¸¸ÅÀÇ ¼Ó¼º(attribute)°¡ ¸ÅÄ¡µÉ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù.
´ÙÀ½À¸·Î ¼¼¹ø° non-capture±×·ìÀÌ ¿À´Âµ¥ ³»ºÎ¿¡ >±âÈ£°¡ ´ã±æ °ÍÀÌ°í ÄÁÅÙÃ÷ºÎºÐ°ú ´Ý´Âűװ¡ ÀÖ½À´Ï´Ù.(°ø¹é°ú ½½·¡½Ã(/), > ±âÈ£) ù¿É¼ÇÀº ¹®Àڵ鿡 À̾îÁö´Â >±âÈ£¸¦ ã½À´Ï´Ù. \1Àº ĸÃÄµÈ Ã¹¹ø° ±×·ì¿¡¼ÀÇ ³»¿ëÀ» Ç¥ÇöÇϴµ¥ »ç¿ëµË´Ï´Ù. ÀÌ °æ¿ì¿¡´Â ű×ÀÇ À̸§ÀÌ µË´Ï´Ù. ÀÌÁ¦ ű×À̸§ÀÌ ¸ÅÄ¡µÇÁö ¾ÊÀ¸¸é ÀÚ½ÅÀÇ ´Ý´Âű׸¦ ã±â¸¦ ¿øÇÕ´Ï´Ù. ÀÌ°ÍÀº "/>"°¡ À̾îÁö´Â ÇÑ°³ÀÌ»óÀÇ °ø¹éÀÌ ÇÊ¿äÇÕ´Ï´Ù.
MatchµÇ´Â ½ºÆ®¸µ : <a href="http://net.tutsplus.com/">Nettuts+</a>
MatchµÇÁö ¾Ê´Â ¹®ÀÚ¿ : <img src="img.jpg" alt="My image>" /> (¼Ó¼ºÀº >±âÈ£¸¦ °¡Áú ¼ö ¾øÀ½)
³»¿ëÀº ¾ÆÁÖ ÁÁÀºµ¥ ±ÞÇÏ°Ô ÀÛ¼ºÇß´õ´Ï ¹ø¿ªÀÌ ¿µ ±×·¸³×¿ä. ¿ø¹®°¡¼ º¸½Ã±æ....(Àº±Ù½½Â½ ±ÞÇÏ°Ô Çؼ ¹ø¿ªÀÌ ÀÌ·± ô... ¤§¤§¤§)