Á¤±Ô Ç¥Çö½Ä(Regular Expression) |
|
|
 |
8³â Àü |
1. Á¤±Ô Ç¥Çö½ÄÀ̶õ.
¹®ÀÚ¿ÀÇ Æ¯Á¤ÇÑ ÆÐÅÏÀ» Ç¥½ÃÇϰųª °Ë»çÇϱâ À§ÇÑ ±ÔÄ¢À» ÀǹÌÇÏ¸ç ¾î¶² ¹®ÀÚ¿ÀÇ ÁýÇÕÀ» Ç¥½ÃÇÏ´Â ÅؽºÆ® stringÀ̳ª ÀϹÝÀûÀÎ
ÅؽºÆ® Çü½ÃÀÇ ¹®¼ µî¿¡¼ ¹®ÀÚ¿À» ã¾Æ³»°Å³ª °Ë»çÇÏ°í ġȯÇϴµ¥ »ç¿ëµÈ´Ù. ÀÌ·¯ÇÑ Á¤±Ô Ç¥Çö½ÄÀº Á¤±Ô Ç¥Çö½ÄÀ» Ç¥½ÃÇÏ´Â
Ư¼ö¹®ÀÚ¿Í Á¤±Ô Ç¥Çö½ÄÀ» °Ë»çÇϱâ À§ÇÑ ÇÔ¼ö°¡ ÀÖ´Ù.
2. ÆÐÅÏÀ» Ç¥ÇöÇϴ Ư¼ö ¹®ÀÚ
.
ÀÓÀÇÀÇ ÇÑ ±ÛÀÚ¸¦ ÀǹÌÇÑ´Ù.
a.b (abc, acb, afb...)
*
* ¹Ù·Î ¾ÕÀÇ ¹®ÀÚ°¡ ¾ø°Å³ª ÇÑ°³ ÀÌ»óÀÌ ÀÖÀ» °æ¿ì
a*b (b, ab, aab, aaab...)
+
+ ¹Ù·Î ¾ÕÀÇ ¹®ÀÚ°¡ ÃÖ¼Ò ÇÑ °³ ÀÌ»óÀÏ ¶§
a+b (ab, aab, aaab...)
?
? ¹Ù·Î ¾ÕÀÇ ¹®ÀÚ°¡ ¾ø°Å³ª ÇÑ °³ Á¸ÀçÇÏ´Â °æ¿ì
a?b (b, ab, cb, zb...)
^
^ µÚ¿¡ ¹®ÀÚ¿°ú °°Àº ¹®ÀÚ¿·Î ½ÃÀÛÇÑ´Â °æ¿ì
[] ¾È¿¡¼ ^ ´Â [] ¾ÈÀÇ ¹®ÀÚ¸¦ Á¦¿ÜÇÑ ¹®ÀÚ¸¦ ÀǹÌÇÑ´Ù.
^ab (ab, abc, abdr...)
$
$ ¾ÕÀÇ ¹®ÀÚ¿°ú °°Àº ¹®ÀÚ¿·Î ³¡³ª´Â °æ¿ì
ab$ (ab, sab, aaab...)
[]
[] ¾ÈÀÇ ¹®ÀÚ¿ Áß¿¡ Çϳª¸¸ÀÇ ¹®ÀÚ¸¸À» ÀǹÌÇÑ´Ù.
[a-z], [0-9], [a-zA-Z]
{}
{} ¾ÕÀÇ ¹®ÀÚ¿ÀÇ °³¼ö¸¦ ÀǹÌÇÑ´Ù.
a{1-3}b (ab, aab, aaab)
()
() ¾ÈÀÇ ¹®ÀÚ´Â ±×·ìÀ¸·Î ÀνÄÇÑ´Ù.
a(bc){2} (abcbc)
|
or ¿¬»êÀÚÀÌ´Ù.
a(b|c)d (abd, acd)
[[:alpha:]]
¸ðµç ¾ËÆĺªÀÇ ¹®ÀÚ ÇÑ ÀÚ¸¦ ÀǹÌÇÑ´Ù.
[a-zA-Z]¿Í µ¿ÀÏ
[[:digit:]]
¸ðµç ¼ýÀÚ ÇÑ ÀÚ¸¦ ÀǹÌÇÑ´Ù.
[0-9]¿Í µ¿ÀÏ
[[:alnum:]]
¾ËÆĺª°ú ¼ýÀÚÁß ÇÑ ÀÚ¸¦ ÀǹÌÇÑ´Ù.
[a-zA-Z0-9]¿Í µ¿ÀÏ
[[:space:]]
°ø¹é ¹®ÀÚ¸¦ ÀǹÌÇÑ´Ù.
[[:punct:]]
±¸µÎÁ¡À» ÀǹÌ
\
. * + ? ^ $ [] {} () | \ ¹®ÀÚ¸¦ Ç¥½ÃÇÒ¶§
(\*, \\, \[1\], \|...)
3. Á¤±Ô Ç¥Çö½ÄÀÇ Æ¯¼ö¹®ÀÚ »ç¿ë¹ý
1) ^a?bc : a·Î ½ÃÀÛÇؼ bc·Î ³¡³ª´Â ¹®ÀÚ(abc·Î ½ÃÀÛÇÏ´Â ¹®ÀÚ)¿Í bc·Î ½ÃÀÛÇÏ´Â ¸ðµç ¹®ÀÚ (¿¹ abcd, bcd)
2) ^.a : a¾Õ¿¡ ¾Æ¹« ÇÑ ¹®ÀÚ°¡ ÀÖ¾î¾ß ÇÏ°í ±× ¹®ÀÚ·Î ½ÃÀÛÇÏ°í a°¡ µé¾î°£ ¹®ÀÚ (¿¹ aa, bacd, match, para)
3) a?b$ : b·Î ³¡³ª´Â ¹®ÀÚ¿ Áß¿¡ a°¡ ¾ø°Å³ª ÇÑ °³ ÀÌ»ó Á¸ÀçÇÏ´Â ¹®ÀÚ¿ (¿¹ b, ab, aab)
4) a?b+$ : ù ±ÛÀÚ´Â a°¡ Àְųª ¾ø°í b°¡ ÇÑ °³ ÀÌ»óÀÌ°í b·Î ³¡³ª´Â ¹®ÀÚ (¿¹ ab, b, bb, abbb, abbbb)
5) ^ab$ : ù ±ÛÀÚ°¡ aÀÌ°í ³¡³ª´Â ¹®ÀÚ°¡ bÀÎ °æ¿ì (¿¹ ab)
6) [ab]cd : a³ª bÁß¿¡ ÇÑ ±ÛÀÚ¿Í cd°¡ Æ÷ÇÔµÈ acd, bcd¸¦ Æ÷ÇÔÇÑ ¹®ÀÚ (¿¹ acd, bcd, acdse)
7) ^[a-zA-Z] : ¿µ¹®ÀÚ·Î ½ÃÀÛÇÏ´Â ¸ðµç ¹®ÀÚ (¿¹ a, b, c, d, ee)
8) [^ab]cd : cd ¹®ÀÚ¿ ¾Õ¿¡ a³ª b¸¦ Á¦¿ÜÇÑ ¹®ÀÚ°¡ ÀÖ´Â ¹®ÀÚ¿ Áï, acd¿Í bcd¸¦ Á¦¿ÜÇÑ ¹®ÀÚ¿À» ÀǹÌÇÑ´Ù. (¿¹ scd, dcd, ffcd)
9) a{2,}b : aÀÇ °³¼ö°¡ ÃÖ¼Ò 2°³ ÀÌ»óÀÌ°í ´ÙÀ½ ¹®ÀÚ°¡ bÀÎ ¹®ÀÚ (¿¹ aab, aaabcd, aaaab)
-------------------------------------------------------------------------------------------------------------------------------------------------
Á¤±ÔÇ¥Çö½Ä ±âÃÊ
. : ´Ù¼öÀÇ Çѹ®ÀÚ
? : 0°³ ÀÌ»óÀÇ Çѹ®ÀÚ
* : 0°³ ÀÌ»óÀÇ ¹®ÀÚ ¶Ç´Â ¹®ÀÚ¿
+ : 1°³ ÀÌ»óÀÇ ¹®ÀÚ ¶Ç´Â ¹®ÀÚ¿
(chars) : (, ) ¾ÈÀÇ ¹®ÀڶǴ ¹®ÀÚ¿À» ±×·ìÀ¸·Î ¹½À´Ï´Ù. ÀÌ ¹®ÀÚ±×·ìÀº Substitution(return URL)¿¡¼ $N ÀÇ º¯¼ö·Î È°¿ëÇÒ¼ö ÀÖ½À´Ï´Ï´Ù.
^ : ¹®ÀÚ¿ÀÇ Ã¹¹®(¿)À» ÁöÁ¤ÇÕ´Ï´Ù.
$ : ¹®ÀÚ¿ÀÇ ³¡ ¹®ÀÚ(¿)À» ÁöÁ¤ÇÕ´Ï´Ù.
\(¿ª½½·¡½¬) : Á¤±ÔÇ¥Çö½Ä¿¡¼ Ưº°ÇÑ Àǹ̷Π»ç¿ëµÇ´Â ¹®ÀÚÀÇ Æ¯¼ö±â´ÉÀ» Á¦°ÅÇÕ´Ï´Ù.(¿¹:(, ), [, ] . µî)
{n} : Á¤È®È÷ n¹ø ¹Ýº¹
{n,} : n¹ø ÀÌ»ó ¹Ýº¹
{n,m} : n ÀÌ»ó m ÀÌÇÏ ¹Ýº¹
[chars] : ¹®ÀÚµéÀÇ ¹üÀ§ ¶Ç´Â Ç¥ÇöÇÒ ¼ö ÀÖ´Â ¹®ÀÚµéÀ» ¼³Á¤ÇÕ´Ï´Ù.
¿¹) [a-z] : a ºÎÅÍ z ±îÁöÀÇ ¼Ò¹®ÀÚ, [tT] : ¼Ò¹®ÀÚ t ¶Ç´Â ´ë¹®ÀÚ T
Á¤±ÔÇ¥Çö½Ä ´ÜÃàÇ¥Çöµé
[:alpha:] : ¾ËÆĺª. [a-zA-Z] ¿Í °°Àº Ç¥Çö
[:alnum:] : ¾ËÆĺª°ú ¼ýÀÚ. [a-zA-Z0-9] ¿Í °°Àº Ç¥Çö
[:digit:] : ¼ýÀÚ [0-9] ¿Í °°Àº Ç¥Çö
[:upper:] : ´ë¹®ÀÚ. [A-Z] ¿Í °°Àº Ç¥Çö
-------------------------------------------------------------------------------------------------------------------------------------------------
PHP´Â POSIX¿Í PerlÀ̶ó´Â µÎ °¡Áö ½ºÅ¸ÀÏÀÇ Á¤±Ô Ç¥Çö½ÄÀ» Áö¿øÇÑ´Ù. POSIX½ºÅ¸ÀÏÀÇ Á¤±Ô Ç¥Çö½ÄÀÌ PHP¿¡¼ ±âº»ÀÌÁö¸¸,
Perl ½ºÅ¸Àϵµ PCRE(Perl-Compitable Regular Expression)¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ¿© Ç¥ÇöÇÒ¼ö ÀÖ´Ù.
¾Æ·¡ÀÇ ¼³¸íÀº POSIX ½ºÅ¸ÀÏÀ» ±âÁØÀ¸·Î ÇÑ´Ù.
. : ¹®ÀÚ´Â ÁÙ¹Ù²Þ ¹®ÀÚ(\n)À» Á¦¿ÜÇÑ ¸ðµç ¹®ÀÚ¸¦ ´ë½ÅÇÒ¼ö ÀÖ´Ù (ÇϳªÀÇ ¹®ÀÚ)
ex) .at : ÀÌ·± Á¤±Ô½ÄÀº cat, sat, matµîÀÌ ÇØ´çµÈ´Ù.
[a-z]at : []ÀÇ ¹®ÀÚµéÀº ¹®ÀÚ Å¬·¡½º¶ó°í ÇÏ°í, ÀÏÄ¡½ÃÅ°´Â ¹®ÀÚ´Â ÀÌ Å¬·¡½º¿¡ ¼ÓÇØ¾ß ÇÑ´Ù. []¾ÈÀÇ °ÍµéÀº
¸ðµÎ °¢°¢ ÇϳªÀÇ ¹®ÀÚÀÌ´Ù.
ex) [aeiou] : ¿µ¾îÀÇ ¸ðÀ½¿¡ ÇØ´çµÇ´Â ´Ü¾î·Î []¾ÈÀÇ ÇϳªÀÇ ¹®ÀÚ°¡ µÈ´Ù.
¶ÇÇÑ ¹üÀ§¸¦ »ç¿ëÇؼµµ Ç¥ÇöÇÒ¼ö Àִµ¥ -¸¦ »ç¿ëÇÑ´Ù.
ex) [a-zA-Z] : ´ë¼Ò¹®ÀÚ ¾ËÆĺª ÇÑ ¹®ÀÚ¸¦ ÀǹÌÇÑ´Ù.
ÁýÇÕÀÇ ±¸¼º¿øÀÌ ¾Æ´Ï¶ó´Â Ç¥ÇöÀ¸·Î ^¸¦ »ç¿ëÇÑ´Ù. ÀÌ´Â []¾È¿¡ ^°¡ ÀÖÀ»°æ¿ì notÀ̶ó´Â Àǹ̸¦ °¡Áø´Ù.
ex) [^a-z] : ¼Ò¹®ÀÚ ¾ËÆĺª ÀÌ¿ÜÀÇ ÇÑ ¹®ÀÚ¸¦ ÀǹÌÇÑ´Ù.
[[:alnum:]] ¾ËÆĺª ¹®ÀÚ, ¼ýÀÚ
[[:alpha:]] ¾ËÆĺª
[[:lower:]] ¼Ò¹®ÀÚ
[[:upper:]] ´ë¹®ÀÚ
[[:digit:]] ½ÊÁø¹ýÀÇ ¼ýÀÚ
[[:xdigit:]] 16Áø¹ýÀÇ ¼ýÀÚ
[[:punct:]] ±¸µÎÁ¡
[[:blank:]] ÅÇ, ½ºÆäÀ̽º
[[:space:]] °ø¹é ¹®ÀÚµé
[[:cntrl:]] ÄÁÆ®·Ñ ¹®ÀÚµé
[[:print:]] ¸ðµç Ãâ·Â °¡´ÉÇÑ ¹®ÀÚµé
[[:graph:]] ½ºÆäÀ̽º¸¦ Á¦¿ÜÇÑ ¸ðµç Ãâ·Â °¡´ÉÇÑ ¹®ÀÚµé
* : ÆÐÅÏÀÌ 0¹ø ÀÌ»ó ¹Ýº¹µÉ ¼ö ÀÖÀ½À» ³ªÅ¸³»°íl
+ : ÇѹøÀÌ»ó ¹Ýº¹µÉ ¼ö ÀÖÀ½À» ³ªÅ¸³½´Ù.
ex) [[:alnum:]]+ : ¾ËÆĺªÀ̳ª ¼ýÀÚ Çѹ®ÀÚ°¡ ÇѹøÀÌ»ó ¹Ýº¹. Áï, Àû¾îµµ ÇϳªÀÌ»óÀÇ ¾ËÆĺªÀ̳ª ¼ýÀÚ¸¦ ÀǹÌÇÑ´Ù.
ÇÑ ¹®ÀÚ¿ µÚ¿¡ ¾î¶² ¹®ÀÚ¿ÀÌ ¹Ýº¹Çؼ ³ªÅ¸³²À» Á¤±Ô Ç¥Çö½ÄÀ¸·Î ³ªÅ¸³½ °ÍÀº ¾Æ·¡¿Í °°´Ù.
ex) (very )*large : ÀÌ´Â large, very large, very very largeµî°ú ÀÏÄ¡ÇÑ´Ù.
{}¸¦ ÅëÇؼ ¹Ýº¹µÇ´Â Ƚ¼ö¸¦ Á¦ÇÑÇÒ ¼ö ÀÖ´Ù.
{3}´Â ¼¼¹ø ¹Ýº¹, {2, 4}Àº µÎ¹ø¿¡¼ ³×¹ø »çÀÌ·Î ¹Ýº¹, {2, }´Â Àû¾îµµ 2¹ø ÀÌ»ó ¹Ýº¹ÀÇ ÀǹÌÀÌ´Ù.
ex) (very ){1, 3} : very , very very , very very very ¿Í ÀÏÄ¡ÇÑ´Ù.
^ : Á¤±Ô Ç¥Çö½ÄÀÇ ½ÃÀۺκп¡ »ç¿ëµÇ¸ç, °Ë»öÇÏ´Â ¹®ÀÚ¿ÀÇ ¸Ç ¾ÕºÎºÐ¿¡ ÀÌ Ç¥ÇöÀÌ ÀÖ¾î¾ß ÇÔÀ» ÀǹÌÇÑ´Ù.
$ : Á¤±Ô Ç¥Çö½ÄÀÇ µÞºÎºÐ¿¡ »ç¿ëµÇ°í ÀÌ Ç¥ÇöÀ¸·Î ¹®ÀÚ¿ÀÌ ³¡³ª¾ß µÊÀ» ÀǹÌÇÑ´Ù.¹Ì
^[a-z]$ : aºÎÅÍ z»çÀÌÀÇ Çѹ®ÀÚ¸¦ ÀǹÌÇÑ´Ù.
| : ¼±ÅÃÀ» Ç¥ÇöÇÏ´Â °æ¿ì »ç¿ëµÈ´Ù.
ex) com|edu|net : comÀ̰ųª eduÀ̰ųª netÀΰæ¿ì¸¦ ÀǹÌÇÑ´Ù.
\ : '.', '{', '$', '-', µîÀÇ Æ¯¼ö¹®ÀÚ¸¦ Á¤±Ô Ç¥Çö½ÄÀ» À§ÇÑ Æ¯¼ö¹®ÀÚ°¡ ¾Æ´Ñ ¹®ÀÚ·Î »ç¿ëÇÏ°í ½ÍÀ»¶§ '\'¸¦ ºÙ¿©¼ »ç¿ëÇÑ´Ù.
'\'¸¦ Ç¥ÇöÇÒ¶§´Â '\\'¶ó°í ½áÁØ´Ù.
ex) \\\$ : ÀÌ °æ¿ì \$¸¦ ã°íÀÚ ÇÒ°æ¿ì¸¦ ÀǹÌÇÏ°Ô µÈ´Ù.
POSIX Á¤±Ô Ç¥Çö½Ä¿¡¼ÀÇ Æ¯¼ö¹®ÀÚÀÇ ÀǹÌ
1) []¹Û¿¡¼ »ç¿ëµÇ¾úÀ»¶§
- / : Ư¼ö¹®ÀÚ À̽ºÄÉÀÌÇÁ
- ^ : ¹®ÀÚ¿ÀÇ Ã³À½¿¡¼ ÀÏÄ¡µÇ¾î¾ß ÇÔ
- $ : ¹®ÀÚ¿ÀÇ ³¡¿¡¼ ÀÏÄ¡µÇ¾î¾ß ÇÔ
- . : ÁٹٲÞ(\n)À» Á¦¿ÜÇÑ ¸ðµç ¹®ÀÚ¿Í ÇÑ°³¸¦ ÀǹÌ
- | : ¶Ç´ÂÀÇ ÀǹÌ
- ( : ÆÐÅÏÀÇ ½ÃÀÛ
- ) : ÆÐÅÏÀÇ ³¡
- * : 0¹ø ÀÌ»ó ¹Ýº¹µÊ
- + : 1¹ø ÀÌ»ó ¹Ýº¹µÊ
- { : ¹Ýº¹ Ƚ¼ö ÁöÁ¤ÀÇ ½ÃÀÛ
- } : ¹Ýº¹ Ƚ¼ö ÁöÁ¤ÀÇ ³¡
- ? : ÇÏÀ§ Ç¥Çö½ÄÀ» ¿É¼ÇÀ¸·Î Ãë±Þ
2) []¾È¿¡¼ »ç¿ëµÇ¾úÀ»¶§
- / : Ư¼ö¹®ÀÚ À̽ºÄÉÀÌÇÁ
- ^ : ¸Ç óÀ½ ½ÃÀ۵ǾúÀ» ¶§¸¸ notÀÇ ÀǹÌ, ÀÌ¿Ü¿¡´Â ¹®ÀÚ·Î ÀνÄ
- - : ¹®ÀÚÀÇ ¹üÀ§ ÁöÁ¤
ex) ^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$
´ë¼Ò¿µ¹®ÀÚ, ¼ýÀÚ, _, -, .Áß ÇÑ°³ÀÇ ¹®ÀÚÀε¥ ¹®ÀÚ¿ÀÇ Ã³À½¿¡ ³ªÅ¸³ª¾ß µÇ°í +°¡ ÀÖ¾î¼ ÇѹøÀÌ»ó ¹Ýº¹µÈ´Ù.
±× ÀÌÈÄ @ ¹®ÀÚ Çѹ®ÀÚ°¡ ÀÖ¾î¾ß µÇ°í ´ë¼Ò¿µ¹®ÀÚ, ¼ýÀÚ, -Áß ÇÑ°³ÀÇ ¹®ÀÚÀε¥ +°¡ ÀÖ¾î¼ ÇѹøÀÌ»ó ¹Ýº¹µÈ´Ù.
±× ÀÌÈÄ . ¹®ÀÚ Çѹ®ÀÚ°¡ ÀÖ¾î¾ß µÇ°í ´ë¼Ò¿µ¹®ÀÚ, ¼ýÀÚ, -, .Áß ÇÑ°³ÀÇ ¹®ÀÚÀε¥ +°¡ ÀÖ¾î¼ ÇѹøÀÌ»ó ¹Ýº¹µÇ¸ç ³¡³´Ù. |
|
̵̧ : 352 |
̵̧
¸ñ·Ï
|
|