| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 9. ÇÔ¼ö¿Í ¿¬»êÀÚ | Fast Forward | Next |
PostgreSQL¿¡´Â, ÆÐÅÏ ¸ÅÄ¡¸¦ ½Ç½ÃÇϴµ¥ 3°³ÀÇ ´Ù¸¥ ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
ÀüÅëÀûÀÎSQLÀÇLIKE¿¬»êÀÚ, À̰ͺ¸´Ù »õ·Î¿îSIMILAR TO¿¬»êÀÚ(SQL:1999·Î Ãß°¡µÇ¾ú½À´Ï´Ù), ¹×POSIX¾ç½ÄÀÇ Á¤±Ô Ç¥ÇöÀÔ´Ï´Ù.
±âº»ÀÇ"ÀÌ ¹®ÀÚ¿Àº ÀÌ ÆÐÅÏ¿¡ ¸ÅÄ¡ µÉ±î? "¿¬»êÀÚ¸¦ Á¦¿ÜÇϰí, ¸ÅĪÇÏ´Â ¹®ÀÚ¿À» ÃßÃâÇϰųª ġȯÇϰųª ±×¸®°í ±× ¸ÅÄ¡¿¡ ÀÇÇÑ ¹®ÀÚ¿ ºÐÇÒÀÇ ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
Tip: »ó±âÀÇ ¼ö¹ý¿¡¼´Â °Ë»öÇÒ ¼ö ¾ø´Â °Í °°Àº ÆÐÅÏ ¸ÅĪÀÌ ÇÊ¿äÇÑ °æ¿ì´Â, Perl ȤÀº Tcl·Î À¯Àú Á¤ÀÇ ÇÔ¼ö¸¦ ÀÛ¼ºÇÏ´Â °ÍÀ» °ËÅäÇØ ÁÖ¼¼¿ä.
LIKE
string LIKE pattern [ESCAPE escape-character ] string NOT LIKE pattern [ESCAPE escape-character ]
°¢°¢ÀÇ
pattern
´Â, ¹®ÀÚ¿ÀÇ ÁýÇÕÀ» Á¤ÀÇÇÕ´Ï´Ù.
LIKE½ÄÀº
pattern
¿¡ ÀÇÇØ ³ªÅ¸³ª´Â ¹®ÀÚ¿ÀÇ ÁýÇÕ¿¡
string
°¡ Æ÷ÇԵǾî ÀÖÀ¸¸é true¸¦ ¹ÝȯÇÕ´Ï´Ù(¿¹»óµÇ´Â ´ë·Î,NOT LIKE½ÄÀºLIKE½ÄÀÌ true¸¦ ¹ÝȯÇÏ´Â °æ¿ì¿¡´Â false¸¦ ¹ÝȯÇÕ´Ï´Ù, ±× ¿ªÀÇ °æ¿ìµµ °°½À´Ï´Ù.
µ¿µîÇÑ ½ÄÀºNOT (
string
LIKE
pattern
)¶ó°íµµ Ç¥ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù).
pattern
°¡ ÆÛ¼¾Æ® ±âÈ£ ȤÀº ¾ð´õ ½ºÄھ Æ÷ÇÔÇÏÁö ¾ÊÀº °æ¿ì, ÆÐÅÏÀº ÀÚ½ÅÀÇ ¹®ÀÚ¿À» ³ªÅ¸³À´Ï´Ù.
ÀÌ °æ¿ìLIKE½ÄÀº µîÈ£ ¿¬»êÀÚ¿Í °°ÀÌ ÇൿÇÕ´Ï´Ù.
pattern
¿¡ ÀÖ´Â ¾ð´õ ½ºÄÚ¾î(_)´Â ÀÓÀÇÀÇ ÇÑ ±ÛÀÚ¿ÍÀÇ ¸ÅĪÀ» ÀǹÌÇÕ´Ï´Ù.
ÆÛ¼¾Æ® ±âÈ£(%)´Â 0 ¶Ç´Â 0 ÀÌ»óÀÇ ¹®ÀÚ¿°úÀÇ ¸ÅĪÀ» ÀǹÌÇÕ´Ï´Ù.
¿¹£º
'abc' LIKE 'abc' true 'abc' LIKE 'a%' true 'abc' LIKE '_b_' true 'abc' LIKE 'c' false
LIKE¿¡ ÀÇÇÑ ÆÐÅÏ ¸ÅÄ¡´Â Ç×»ó ¹®ÀÚ¿ Àüü¿¡ ´ëÇØ¼ ÇàÇØÁý´Ï´Ù.
¹®ÀÚ¿³»ÀÇ ÀÓÀÇ À§Ä¡¿¡ ÀÖ¾î¼ÀÇ ½ÃÄö½º¿Í ¸ÅÄ¡½ÃŰ·Á¸é, ÆÛ¼¾Æ® ±âÈ£¸¦ ¼±µÎ¿Í ¸»¹Ì¿¡ ºÙÀÏ Çʿ䰡 ÀÖ½À´Ï´Ù.
´Ù¸¥ ¹®ÀÚ¿ÍÀÇ ¸ÅξøÀÌ ¾ð´õ ½ºÄھ ÆÛ¼¾Æ® ±âÈ£ ±× ÀÚü¸¦ ¸ÅÄ¡ÇÏ·Á¸é, pattern ³»ÀÇ °¢°¢ÀÇ ¾ð´õ ½ºÄÚ¾î¿Í ÆÛ¼¾Æ® ±âÈ£ÀÇ Àü¿¡ À̽ºÄÉÀÌÇÁ ¹®ÀÚ¸¦ ºÙ¿©¾ß ÇÕ´Ï´Ù. µðÆúÆ®ÀÇ À̽ºÄÉÀÌÇÁ ¹®ÀÚ´Â ¹é½½·¡½ÃÀÔ´Ï´Ù¸¸,ESCAPE±¸·Î ´Ù¸¥ ¹®ÀÚ¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. À̽ºÄÉÀÌÇÁ ¹®ÀÚ ±× ÀÚü¸¦ ¸ÅÄ¡ ½ÃŰ·Á¸é À̽ºÄÉÀÌÇÁ ¹®ÀÚ¸¦ 2°³ ¾¹´Ï´Ù.
¹é½½·¡½Ã´Â ¹®ÀÚ¿ ±× ÀÚü¿¡ Ưº°ÇÑ ÀÌÀ¯°¡ ÀÖÀ¸¹Ç·Î, backslash¸¦ Æ÷ÇÔÇÑ ÆÐÅÏ »ó¼ö¸¦ ±â¼úÇÒ ¶§´Â SQL¹® ³»¿¡¼ 2°³ÀÇ backslash¸¦ ±â¼úÇÒ Çʿ䰡 ÀÖ´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä(À̽ºÄÉÀÌÇÁ ¹®ÀÚ¿ ±¸¹®ÀÇ »ç¿ëÀ» ÀüÁ¦. Section 4.1.2.1¸¦ ÂüÁ¶Çϼ¼¿ä).
µû¶ó¼, ½ÇÁ¦·Î backslash ±× ÀÚü¿¡ ¸ÅÄ¡ÇÏ´Â ÆÐÅÏÀ» ±â¼úÇÏ·Á¸é , ¹®Àå ³»¿¡¼ backslash¸¦ 4°³ ±â¼úÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
ESCAPE±¸·Î ´Ù¸¥ À̽ºÄÉÀÌÇÁ ¹®ÀÚ¸¦ ¼±ÅÃÇÏ¿© ÀÌ·¯ÇÑ »óȲÀ» ȸÇÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì, backslash´ÂLIKE½Ä¿¡ ÀÖ¾î ´õÀÌ»ó Æ¯¼öÇÑ ¹®ÀÚ°¡ ¾Æ´Õ´Ï´Ù.
(±×·¯³ª, ¹®ÀÚ¿ ¸®ÅÍ·² ÆÄ¼¿¡ À־ ¿©ÀüÈ÷ Ư¼ö ¹®ÀÚÀ̹ǷÎ, ¿©ÀüÈ÷ 2°³¸¦ ±â¼úÇØ¾ß ÇÕ´Ï´Ù).
ESCAPE ''¸¦ ±â¼úÇÏ´Â °ÍÀ¸·Î À̽ºÄÉÀÌÇÁ ¹®ÀÚ¸¦ ¼±ÅÃÇÏÁö ¾Ê´Â °Íµµ °¡´ÉÇÕ´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, »ç½Ç»ó À̽ºÄÉÀÌÇÁ ¸ÅÄ¿´ÏÁòÀÌ ÀÛ¿ëÇÏÁö ¾Ê°Ô µË´Ï´Ù. Áï, ÆÐÅϳ»ÀÇ ¾ð´õ ½ºÄÚ¾î ¹× ÆÛ¼¾Æ® ±âÈ£ÀÇ Æ¯º°ÇÑ Àǹ̸¦ ÇØÁ¦ÇÒ ¼ö ¾ø°Ô µË´Ï´Ù.
¾×Ƽºê ·ÎÄÉÀÏ¿¡ µû¶ó ´ë¹®ÀÚ ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅÄ¡¸¦ ½Ç½ÃÇÑ´Ù¸é,LIKE´ë½Å¿¡ILIKEŰ¿öµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀº Ç¥ÁØSQL´Â ¾Æ´Ï°í,PostgreSQLÀÇ È®ÀåÀÔ´Ï´Ù.
~~¿¬»êÀÚ´ÂLIKE½Ä°ú µ¿ÀÏÇϰí,~~*´ÂILIKE¿¡ ´ëÀÀÇÕ´Ï´Ù.
¶ÇÇÑ, NOT LIKE¹×NOT ILIKE¸¦ ³ªÅ¸³»´Â ! ~~¹×! ~~*¿¬»êÀÚ°¡ ÀÖ½À´Ï´Ù.
ÀÌµé ¸ðµç ¿¬»êÀÚ´ÂPostgreSQL°íÀ¯ÀÇ °ÍÀÔ´Ï´Ù.
SIMILAR TOÁ¤±Ô Ç¥Çö
string SIMILAR TO pattern [ESCAPE escape-character ] string NOT SIMILAR TO pattern [ESCAPE escape-character ]
SIMILAR TO¿¬»êÀÚ´Â, ±× ÆÐÅÏÀÌ ÁÖ¾îÁø ¹®ÀÚ¿·Î ¸ÅÄ¡ÇÒÁö ¾î¶³Áö¿¡ ÀÇÇØ, true ȤÀº false¸¦ ¹ÝȯÇÕ´Ï´Ù.
À̰ÍÀº, Ç¥ÁØ SQLÀÇ Á¤±Ô Ç¥Çö Á¤ÀǸ¦ »ç¿ëÇØ ÆÐÅÏÀ» ÇØ¼®ÇÑ´Ù°í ÇÏ´Â Á¡ Àܴ̿Â,LIKE¿Í ¸Å¿ì À¯»çÇÕ´Ï´Ù.
SQLÀÇ Á¤±Ô Ç¥ÇöÀº,LIKEÇ¥±â¿Í ÀϹÝÀûÀÎ Á¤±Ô Ç¥ÇöÀÇ Ç¥±â¸¦ È¥ÇÕÇÑ °Í ÀÔ´Ï´Ù.
LIKE¿Í °°ÀÌ,SIMILAR TO¿¬»êÀÚ´Â, ±× ÆÐÅÏÀÌ ¹®ÀÚ¿ Àüü¿¡ ¸ÅÄ¡ ÇßÀ» °æ¿ì¸¸ 󸮸¦ ½Ç½ÃÇÕ´Ï´Ù.
À̰ÍÀº, ÆÐÅÏÀÌ ¹®ÀÚ¿ÀÇ ÀϺκÐÀ̾ ¸ÅÄ¡ ÇÏ´Â, ÀϹÝÀûÀÎ Á¤±Ô Ç¥ÇöÀÇ Ã³¸®¿Í´Â ´Ù¸¨´Ï´Ù.
¶ÇÇÑ,LIKE¿Í °°ÀÌ,SIMILAR TO¿¡¼´Â,%¹×_À», °¢°¢ ÀÓÀÇÀÇ ¹®ÀÚ¿ ¹× ÀÓÀÇÀÇ ´ÜÀÏ ¹®ÀÚ¸¦ ÀǹÌÇÏ´Â ¿ÍÀϵå Ä«µå ¹®Àڷμ »ç¿ëÇÕ´Ï´Ù(À̰͵éÀº, POSIX Á¤±Ô Ç¥Çö¿¡¼ÀÇ. *¹×. ¿Í À¯»çÇÕ´Ï´Ù).
LIKE·ÎºÎÅÍ °ÅµÎ¾î µéÀÎ »ó±âÀÇ ±â´É¿¡ ´õÇÏ¿©, SIMILAR TO¿¡¼´Â, ÀÌÇÏ¿Í °°ÀÌ POSIX Á¤±Ô Ç¥ÇöÀ¸·ÎºÎÅÍ °ÅµÎ¾î µéÀÎ ÆÐÅÏ ¸ÅĪ ¸ÞŸ ij¸¯Å͵µ Áö¿ø ÇÕ´Ï´Ù.
|´Â, ¾çÀÚÅÃÀÏ(2°³ÀÇ ´ë¾È ÁßÀÇ Çϳª)À» ÀǹÌÇÕ´Ï´Ù.
*(Àº)´Â, Á÷ÀüÀÇ Ç׸ñÀÇ 0ȸ ÀÌ»óÀÇ ¹Ýº¹À» ÀǹÌÇÕ´Ï´Ù.
+(Àº)´Â, Á÷ÀüÀÇ Ç׸ñÀÇ 1ȸÀÌ»óÀÇ ¹Ýº¹À» ÀǹÌÇÕ´Ï´Ù.
°ýÈ£()´Â, Ç׸ñÀ» 1°³ÀÇ ³í¸® Ç׸ñ¿¡ ±×·ìÈ ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
´ë°ýÈ£½Ä[...](Àº)´Â, POSIX Á¤±Ô Ç¥Çö°ú °°°Ô ¹®ÀÚ Å¬·¡½º¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
¹Ù¿îµå ¹Ýº¹(? ¹×{...})(Àº)´Â, POSIX¿¡´Â ÀÖ½À´Ï´Ù¸¸, ¿©±â¿¡¼´Â »ç¿ëÇÒ ¼ö ¾ø´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä. ¶ÇÇÑ, Á¡(. )(Àº)Àº ¸ÞŸ ij¸¯ÅͰ¡ ¾Æ´Õ´Ï´Ù.
LIKE¿Í °°ÀÌ, backslash´Â ¸ðµç ¸ÞŸ ij¸¯ÅÍÀÇ Æ¯¼öÇÑ Àǹ̸¦ ¹«È¿·Î ÇÕ´Ï´Ù.
¶Ç, ´Ù¸¥ À̽ºÄÉÀÌÇÁ ¹®ÀÚ¸¦ESCAPE·Î ÁöÁ¤ÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù.
¿¹£º
'abc' SIMILAR TO 'abc' true 'abc' SIMILAR TO 'a' false 'abc' SIMILAR TO '%(b|d)%' true 'abc' SIMILAR TO '(b|c)%' false
3°³ÀÇ ÆÄ¶ó¹ÌÅ͸¦ °¡Áö´ÂsubstringÇÔ¼ö,substring(string from
pattern
for
escape-character
)¸¦ »ç¿ëÇØ, SQL Á¤±Ô Ç¥Çö ÆÐÅÏ¿¡ ¸ÅÄ¡Çü ÇÏ´Â ¼ºê½ºÆ®¸µÀ» ÃßÃâÇÒ ¼ö ÀÖ½À´Ï´Ù.
SIMILAR TO¿Í °°ÀÌ, ÁöÁ¤ÇÑ ÆÐÅÏÀÌ µ¥ÀÌÅÍ ¹®ÀÚ¿ Àüü¿¡ ¸ÅÄ¡Çü ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
¸ÅÄ¡Çü ÇÏÁö ¾Ê´Â °æ¿ì, ÇÔ¼ö´Â Á¾·áÇØ, NULL¸¦ ¹ÝȯÇÕ´Ï´Ù.
¸ÅÄ¡Çü ÇßÀ» °æ¿ì¿¡ ¹ÝÈ¯ÇØ¾ß ÇÒ ÆÐÅÏÀÇ ÀϺθ¦ ³ªÅ¸³»±â À§Çؼ, À̽ºÄÉÀÌÇÁ ¹®ÀÚÀÇ µÚ¿¡ ÀÌÁß ÀοëºÎÈ£(")¸¦ 2¹ø ±â¼úÇÏ´Â °ÍÀ» ÆÐÅÏ¿¡ Æ÷ÇÔÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
ÀÌ·¯ÇÑ Ç¥·Î ÆÐÅÏÀÇ ÀϺο¡ ¸ÅĪÇÏ´Â ÅØ½ºÆ®°¡ ¹ÝȯµË´Ï´Ù.
¿¹£º
substring('foobar' from '%#"o_b#"%' for '#') oob
substring('foobar' from '#"o_b#"%' for '#') NULL
Table 9-11¿¡, POSIX Á¤±Ô Ç¥ÇöÀ» »ç¿ëÇÑ ÆÐÅÏ ¸ÅĪ¿¡ »ç¿ë °¡´ÉÇÑ ¿¬»êÀÚ¸¦ ¿°ÅÇÕ´Ï´Ù.
Table 9-11. Á¤±Ô Ç¥Çö ¸ÅÄ¡ ¿¬»êÀÚ
| ¿¬»êÀÚ | ¼³¸í | ¿¹ | |
|---|---|---|---|
| ~ | Á¤±Ô Ç¥Çö¿¡ ¸ÅÄ¡ÇÕ´Ï´Ù, ´ë¹®ÀÚ ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÔ | 'thomas' ~ '.*thomas.*' | |
| ~* | Matches regular expression, case insensitive | Á¤±Ô Ç¥Çö¿¡ ¸ÅÄ¡ÇÕ´Ï´Ù, ´ë¹®ÀÚ ¼Ò¹®ÀÚÀÇ ±¸º°ÇÏÁö ¾ÊÀ½ | 'thomas' ~* '. *Thomas. *' |
| ! ~ | Á¤±Ô Ç¥Çö¿¡ ¸ÅÄ¡ÇÏÁö ¾Ê½À´Ï´Ù. ´ë¹®ÀÚ ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÔ | 'thomas' ! ~ '. *Thomas. *' | |
| ! ~* | Á¤±Ô Ç¥Çö¿¡ ¸ÅÄ¡ÇÏÁö ¾Ê½À´Ï´Ù. ´ë¹®ÀÚ ¼Ò¹®ÀÚÀÇ ±¸º° ÇÏÁö ¾ÊÀ½ | 'thomas' !~* '.*vadim.*' |
POSIXÁ¤±Ô Ç¥ÇöÀº, ÆÐÅÏ ¸ÅÄ¡¶ó°í ÇÏ´Â Àǹ̿¡¼´Â,LIKE¹×SIMILAR TO¿¬»êÀÚº¸´Ù ÇÑÃþ ´õ °·ÂÇÕ´Ï´Ù.
egrep,sed, ȤÀºawk¿Í °°ÀÌ ¸¹Àº Unix ÅøÀº ¿©±â¼ ¼³¸íÇϰí ÀÖ´Â °Í °ú À¯»çÇÑ ÆÐÅÏ ¸ÅÄ¡ ¾ð¾î¸¦ »ç¿ëÇϰí ÀÖ½À´Ï´Ù.
Á¤±Ô Ç¥ÇöÀº ¹®ÀÚ¿ÀÇ ÁýÇÕ(Á¤±Ô ÁýÇÕ)ÀÇ Ãà¾àµÈ Á¤ÀÇÀÎ ¹®ÀÚ½ÃÄö½º ÀÔ´Ï´Ù.
¹®ÀÚ¿ÀÌ Á¤±Ô Ç¥ÇöÀ¸·Î ±â¼úµÈ Á¤±Ô ÁýÇÕÀÇ ¿ä¼Ò°¡ µÇ¾î ÀÖÀ¸¸é, ±× ¹®ÀÚ¿Àº Á¤±Ô Ç¥Çö¿¡ ¸ÅÄ¡Çü Çϰí ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù.
LIKE¿Í °°ÀÌ, Á¤±Ô Ç¥Çö ¾ð¾î³»¿¡ Ư¼ö ¹®ÀÚ·Î µÇ¾î ÀÖ´Â °Í ÀÌ¿Ü, ÆÐÅÏ ¹®ÀÚ´Â ¹®ÀÚ¿°ú ¿ÏÀüÇÏ°Ô ¸ÅÄ¡Çü µË´Ï´Ù.
±×·¯³ª, Á¤±Ô Ç¥ÇöÀºLIKEÇÔ¼ö°¡ »ç¿ëÇÏ´Â °Í°ú ´Ù¸¥ Ư¼ö ¹®ÀÚ¸¦ »ç¿ëÇÕ´Ï´Ù.
LIKEÇÔ¼öÀÇ ÆÐÅϰú ´Þ¸® Á¤±Ô Ç¥ÇöÀº, ¸í½ÃÀûÀ¸·Î Á¤±Ô Ç¥ÇöÀÌ ¹®ÀÚ¿ÀÇ ½ÃÀÛ ¶Ç´Â ¸»¹Ì¿¡ À§Ä¡°¡ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀº ÇÑ, ¹®ÀÚ¿³»ÀÇ ¾î´À À§Ä¡¿¡¼µµ ¸ÅÄ¡ÇüÀ» ½Ç½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿¹£º
'abc' ~ 'abc' true 'abc' ~ '^a' true 'abc' ~ '(b|d)' true 'abc' ~ '^(b|c)' false
2°³ÀÇ ÆÄ¶ó¹ÌÅ͸¦ °¡Áö´ÂsubstringÇÔ¼ö,substring(string from
pattern
)¸¦ »ç¿ëÇØ, POSIX Á¤±Ô Ç¥Çö ÆÐÅÏ¿¡ ¸ÅÄ¡Çü ÇÏ´Â ¼ºê½ºÆ®¸µÀ» ÃßÃâÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ ÇÔ¼ö´Â, ¸ÅÄ¡Çü ÇÏ´Â °ÍÀÌ ¾ø´Â °æ¿ì¿¡´Â NULL¸¦ ¹ÝȯÇÏ¿©, ¾î´À °æ¿ì´Â ÆÐÅÏ¿¡ ¸ÅÄ¡Çü ÇÑ ÅØ½ºÆ®ÀÇ ÀϺθ¦ ¹ÝȯÇÕ´Ï´Ù.
±×·¯³ª, ÀÓÀÇÀÇ °ýÈ£¸¦ °¡Áö´Â ÆÐÅÏÀÇ °æ¿ì, ù¹øÂ° °ýÈ£·Î µÈ ¼ºê Á¤±Ô Ç¥Çö(¿ÞÂÊ °ýÈ£°¡ ÃÖÃÊ·Î ¿À´Â °Í)¿¡ ¸ÅÄ¡Çü ÇÏ´Â ÅØ½ºÆ®ÀÇ ÀϺΰ¡ ¹ÝȯµË´Ï´Ù.
ÀÌ ¿¹¿Ü¸¦ ÀÏÀ¸Å°Áö ¾Ê°í ÆÐÅÏÁß¿¡ °ýÈ£¸¦ »ç¿ëÇÏ°í ½ÍÀº °æ¿ì, Ç×»ó Á¤±Ô Ç¥Çö Àüü¸¦ °ýÈ£·Î µÑ·¯½Ò ¼ö°¡ ÀÖ½À´Ï´Ù. ÆÐÅϳ»ÀÇ ÃßÃâ ´ë»óÀÇ ¼ºê½ºÆ®¸µ Àü¿¡ °ýÈ£°¡ ÇÊ¿äÇÑ °æ¿ì, ÈļúÀÇ Æ÷ÂøµÇÁö ¾Ê´Â °ýÈ£¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
¿¹£º
substring('foobar' from 'o.b') oob
substring('foobar' from 'o(.)b') o
regexp_replaceÇÔ¼ö´Â, POSIX Á¤±Ô Ç¥Çö ÆÐÅÏ¿¡ ¸ÅÄ¡Çü ÇÏ´Â ¼ºê½ºÆ®¸µÀ» ½Å±Ô ÅØ½ºÆ®¿Í ġȯÇÕ´Ï´Ù.
±¸¹®Àº,regexp_replace(
source
,
pattern
,
replacement
[,
flags
])ÀÔ´Ï´Ù.
pattern
¿¡ ¸ÅÄ¡Çü ÇÏÁö ¾Ê´Â °æ¿ì´Â,
source
¹®ÀÚ¿ÀÌ ±×´ë·Î ¹ÝȯµË´Ï´Ù.
¸ÅÄ¡Çü Çϸé, ¸ÅĪÇÏ´Â ¼ºê½ºÆ®¸µÀ»
replacement
¹®ÀÚ¿À¸·Î ġȯÇÑ
source
¹®ÀÚ¿ÀÌ ¹ÝȯµË´Ï´Ù.
replacement
´Â\
n
¸¦ Æ÷ÇÔÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
¿©±â¼
n
´Â,
n
¹øÂ°¿¡ °ýÈ£·Î µÑ·¯½ÎÀÎ ÆÐÅÏÀÇ ¼ºêÇ¥Çö½Ä¿¡ ¸ÅÄ¡Çü ÇÏ´Â ¿ø·¡ÀÇ ¼ºê½ºÆ®¸µÀ» ³ªÅ¸³»´Â, 1¿¡¼9±îÁöÀÇ ¼öÀÔ´Ï´Ù.
\&°¡ Æ÷ÇԵǾúÀ» °æ¿ì, ÆÐÅÏ Àüü¿Í ¸ÅÄ¡Çü ÇÏ´Â ¼ºê½ºÆ®¸µÀÌ »ðÀԵǴ °ÍÀ» ³ªÅ¸³À´Ï´Ù.
ġȯ ÅØ½ºÆ®³»¿¡ ¸®ÅÍ·² ¹é½½·¡½Ã¸¦ »ðÀÔÇÏ´Â ÇÊ¿äÇÒ °æ¿ì¿¡, \\À̶ó°í ±â¼úÇÕ´Ï´Ù.
(Æò¼Ò´ë·Î, À̽ºÄÉÀÌÇÁ ¹®ÀÚ¿ ±¸¹®ÀÇ »ç¿ëÀ» ÀüÁ¦ Çϸé, ¸®ÅÍ·² Á¤¼ö ¹®ÀÚ¿³»¿¡¼´Â backslash¸¦ 2¹ø ±â¼ú ÇÏ´Â °ÍÀ» ±â¾ï Çϼ¼¿ä. )
flags
ÆÄ¶ó¹ÌÅÍ´Â, ÇÔ¼öÀÇ ÇൿÀ» º¯°æÇÏ´Â 0 ȤÀº 1°³ ÀÌ»óÀÇ ¹®ÀÚ Ç÷¡±×¸¦ Æ÷ÇÔÇÑ ¿É¼ÇÀÇ ÅØ½ºÆ® ¹®ÀÚ¿ÀÔ´Ï´Ù.
Ç÷¡±×i´Â ´ë¹®ÀÚ ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏ´Â ¸ÅĪÀ» ÁöÁ¤ÇÏ´Â ÇÑÆí, Ç÷¡±×g´Â, óÀ½À¸·Î ¸ÅÄ¡ÇÑ ÇϳªÀÇ ¹®ÀÚ ¿Ü¿¡, °¢°¢ ¸ÅÄ¡ÇüÇÑ ¼ºê½ºÆ®¸µÀÇ Ä¡È¯À» ÁöÁ¤ÇÕ´Ï´Ù.
¿¹£º
regexp_replace('foobarbaz', 'b..', 'X')
fooXbaz
regexp_replace('foobarbaz', 'b..', 'X', 'g')
fooXX
regexp_replace('foobarbaz', 'b(..)', E'X\\1Y', 'g')
fooXarYXazY
PostgreSQLÀÇ Á¤±Ô Ç¥ÇöÀº Henry Spencer¿¡ ÀÇÇØ ±â¼úµÈ ÆÐŰÁö¸¦ »ç¿ëÇØ ½ÇÇàµÇ°í ÀÖ½À´Ï´Ù. ÀÌÇÏ¿¡ ¼³¸íÇÏ´Â Á¤±Ô Ç¥ÇöÀÇ ¸¹Àº ºÎºÐÀº, ¸Þ´º¾ó Ç׸ñÀ¸·ÎºÎÅÍ ¼¼¼¼ÇÑ ºÎºÐÀ» º¹»çÇÑ °ÍÀÔ´Ï´Ù.
POSIX 1003.2ÀÇ Á¤ÀÇ¿¡ ÀÇÇϸé, Á¤±Ô Ç¥Çö(RE)¿¡´Â 2°³ÀÇ Çü½ÄÀÌ ÀÖ½À´Ï´Ù. È®Àå REȤÀºERE(´ë·«ÀûÀ¸·Î ¸»ÇØegrep), ¹×±âº» REȤÀºBRE(´ë·«ÀûÀ¸·Î ¸»ÇØed)ÀÔ´Ï´Ù. PostgreSQL´Â ¾çÂÊ ¸ðµÎÀÇ Çü½ÄÀ» Áö¿øÇϰí, °Ô´Ù°¡ POSIX Ç¥ÁØ¿¡´Â ¾øÁö¸¸ Perl³ª TclµîÀÇ ÇÁ·Î±×·¥ ¾ð¾î¿¡¼ ÀÌ¿ëÇÒ ¼ö ÀÖ¾î¼, ³Î¸® »ç¿ëÇÏ°Ô µÈ ¸î °³ÀÇ È®Àåµµ Áö¿øÇϰí ÀÖ½À´Ï´Ù. º»¼¿¡¼´Â, ºñPOSIX È®ÀåÀ» »ç¿ëÇÑRE¸¦°íµµÀÇ REȤÀºARE¶ó°í ºÎ¸¨´Ï´Ù. ARE´Â EREÀÇ Á¤È®ÇÑ »óÀ§ ÁýÇÕÀÔ´Ï´Ù¸¸, BRE¿Í´Â º¹¼öÀÇ ±â¹ý»óÀÇ ºñȣȯÀÎ Á¡ÀÌ ÀÖ½À´Ï´Ù(ÈξÀ ¸¹Àº Á¦ÇÑÀÌ ºÎ°úµÇ°í ÀÖÀ» »Ó¸¸¾Æ´Ï¶ó). ¿ì¼±, ARE¿Í ERE Çü½Ä¿¡ ´ëÇØ ¼³¸íÇϰí, ARE¿¡°Ô¸¸ Àû¿ëµÇ´Â ±â´ÉÀ» ¾ð±ÞÇϰí, BRE¿ÍÀÇ Â÷ÀÌ¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
Note: PostgreSQL·Î ¹Þ¾Æµé¿©Áö´Â Á¤±Ô Ç¥ÇöÀÇ Çü½ÄÀºregex_flavor½ÇÇà½Ã ÆÄ¶ó¹ÌÅÍÀÇ ¼³Á¤À¸·Î ¼±ÅÃÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. Åë»óÀÇ ¼³Á¤ÀºadvancedÀÔ´Ï´Ù. ±×·¯³ª,extended¸¦ ¼±ÅÃÇØ,PostgreSQL¸±¸®½º 7.4 ÀÌÀüÀÇ ¸±¸®½º¿ÍÀÇ ÈĹæ ȣȯ¼ºÀ» ÃÖ´ë·Î ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
Á¤±Ô Ç¥ÇöÀº|À¸·Î ´Ü¶ôÁö¾îÁø, 1°³ ¶Ç´Â º¹¼öÀǺ귣ġ(branch)·Î¼ Á¤Àǵ˴ϴÙ. ºê·£Ä¡(branch)ÀÇ ¾î´ÀÂÊÀ̵ç 1°³¿¡ ¸ÅÄ¡Çü ÇÏ¸é ¸ÅÄ¡Çü ÇÑ °ÍÀÌ µË´Ï´Ù.
ºê·£Ä¡(branch)´Â 0°³ÀÌ»óÀǼö·®ÈµÈ ¾ÆÅèȤÀºÁ¦¾àÀÇ ¿¬°áÀÔ´Ï´Ù. ÃÖÃÊÀÇ °Í¿¡ ¸ÅÄ¡ÇüÇϰí, µÎ¹øÂ°·Î ¸ÅÄ¡Çü ÇØ, ¶ó°í ÇÏ´Â ½ÄÀ¸·Î ¸ÅÄ¡Çü µË´Ï´Ù. µ¡ºÙ¿© ºó ºê·£Ä¡(branch)´Â °ø¹®ÀÚ¿°ú ¸ÅÄ¡Çü ÇÕ´Ï´Ù.
¼ö·®È ¾ÆÅèÀ̶õ, ´ÜÀÏÀǼö·®ÁöÁ¤ÀÚ°¡ µÚ¸¦ µÚµû¸£´Â¾ÆÅèÀÔ´Ï´Ù. ¼ö·®ÁöÁ¤ÀÚ°¡ ¾øÀ¸¸é ¾ÆÅè¿¡°Ô ÀÏÄ¡ÇÏ´Â °ÍÀÌ ¸ÅÄ¡Çü ÇÑ °ÍÀÌ µË´Ï´Ù. ¼ö·®ÁöÁ¤ÀÚ°¡ ÀÖ´Â °æ¿ì, ¾ÆÅè°úÀÇ ÀÏÄ¡°¡ ¸î ȸ ÀÖ´ÂÁö·Î ¸ÅÄ¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾ÆÅèÀº,Table 9-12¿¡ ÀÖÀ» °¡´É¼ºµµ ÀÖ½À´Ï´Ù. Table 9-13¿¡ ¼³Á¤ °¡´ÉÇÑ ¼ö·®ÁöÁ¤ÀÚ¿Í ±× Àǹ̸¦ Ç¥½ÃÇϰí ÀÖ½À´Ï´Ù.
Á¦¾àÀº °ø¹®ÀÚ¿¡, ƯÁ¤ÀÇ Á¶°Ç¿¡ ¸Â´Â °æ¿ì¿¡¸¸ ¸ÅÄ¡Çü ÇÕ´Ï´Ù. ¾ÆÅèÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Â °÷¿¡¼ Á¦¾àÀ» »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ´Ù¸¸, ±× ÈÄ¿¡ ¼ö·®ÁöÁ¤ÀÚ¸¦ ºÙÀÏ ¼ö ¾ø½À´Ï´Ù. ´Ü¼øÇÑ Á¦¾àÀ»Table 9-14¿¡ ³ªÅ¸³À´Ï´Ù. ´ÙÀ½ ºÎºÐ¿¡¼ ´Ù¸¥ ¸î °³ÀÇ Á¦¾àÀ» ¼³¸íÇÕ´Ï´Ù.
Table 9-12. Á¤±Ô Ç¥ÇöÀÇ ¾ÆÅè
| ¾ÆÅè | ¼³¸í |
|---|---|
| ( re ) | (¿©±â¼ re ´Â ÀÓÀÇÀÇ Á¤±Ô Ç¥ÇöÀ¸·Î, ) re ¿ÍÀÇ ¸ÅÄ¡Çü¿¡ ÀûÇÕÇÏ´Â °ÍµµÀÔ´Ï´Ù. ¸ÅĪÀº °¡´ÉÇÑ º¸°íÇÏ´Â °Í¿¡ Àǹ̸¦ ºÎ¿©ÇÒ ¼ö ÀÖ½À´Ï´Ù. |
| (? : re ) | »ó±â¿Í °°À½. ´Ù¸¸, ¸ÅĪÀº º¸°íÇÏ´Â °Í¿¡ Àǹ̸¦ ºÎ¿©ÇÒ ¼ö ¾ø½À´Ï´Ù. ("Æ÷ÂøµÇÁö ¾Ê´Â"°ýÈ£ÀÇ ÁýÇÕ)(ARE¸¸) |
| . | ÀÓÀÇÀÇ ´ÜÀÏ ¹®ÀÚ¸¦ ¸ÅÄ¡ÇÕ´Ï´Ù. |
| [ chars ] | ºê·¢Å¶½Ä. chars ÀÇ ¾î´ÀÂÊÀ̵ç 1°³¸¦ ¸ÅÄ¡Çü ÇÕ´Ï´Ù (ÀÚ¼¼ÇÑ °ÍÀºSection 9.7.3.2À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä). |
| \ k | (¿©±â¼ k ´Â ¿µ¼ýÀÚ ¹®ÀÚÀÌ¿ÜÀÔ´Ï´Ù. ) º¸Åë ¹®Àڷμ ÁöÁ¤ÇÑ ¹®ÀÚ¿¡ ¸ÅÄ¡Çü ÇÕ´Ï´Ù. ¿¹¸¦ µé¸é,\\Àº backslash ¹®ÀÚ¿Í ¸ÅÄ¡ÇÕ´Ï´Ù. |
| \ c | ¿©±â¼ c ´Â ¿µ¼ýÀÚÀÔ´Ï´Ù (¾Æ¸¶ ´Ù¸¥ ¹®ÀÚ°¡ ÈÄ¿¡ °è¼ÓµË´Ï´Ù). À̽ºÄÉÀÌÇÁÀÔ´Ï´Ù. Section 9.7.3.3(À»)¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä (ARE¸¸, ERE¿Í BRE¿¡¼´Â À̰ÍÀº c ¿¡ ¸ÅÄ¡Çü ÇÕ´Ï´Ù). |
| { | Á÷ÈÄ¿¡ ¼ýÀÚ ÀÌ¿ÜÀÇ ¹®ÀÚ°¡ ÀÖ´Â °æ¿ì, ¿ÞÂʾȰýÈ£{¿¡ ¸ÅÄ¡Çü ÇÕ´Ï´Ù. Á÷ÈÄ¿¡ ¼ýÀÚ°¡ °è¼ÓµÇ´Â °æ¿ì, bound (¾Æ·¡¸¦ ÂüÁ¶Çϼ¼¿ä)ÀÇ ½ÃÀÛÀÔ´Ï´Ù. |
| x | ¿©±â¼ x ´Â ±× ¹Û¿¡ Àǹ̸¦ °¡ÁöÁö ¾Ê´Â ´ÜÀÏ ¹®ÀÚÀÔ´Ï´Ù. x ¸¦ ¸ÅÄ¡Çü ÇÕ´Ï´Ù. |
RE´Â\À» Á¾´ÜÀ¸·Î ÇÒ ¼ö ¾ø½À´Ï´Ù.
Note: PostgreSQLÀÇ ¹®ÀÚ¿ ¸®ÅÍ·²³»ÀÇ backslash(\)°¡ ÀÌ¹Ì Æ¯º°ÇÑ Àǹ̸¦ °¡Áö°í ÀÖ´Ù´Â °ÍÀ» ±â¾ïÇϼ¼¿ä. À̽ºÄÉÀÌÇÁ ¹®ÀÚ¿ ±¸¹®ÀÌ »ç¿ëµÈ´Ù°í °¡Á¤Çϸé, backslash¸¦ Æ÷ÇÔÇÑ ÆÐÅÏ »ó¼ö¸¦ ¾µ ¶§¿¡´Â, ±× ¸í·É¹®¿¡¼´Â 2°³ÀÇ backslash¸¦ ±â¼úÇØ¾ß ÇÕ´Ï´Ù(Section 4.1.2.1¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ).
Table 9-13. Á¤±Ô Ç¥Çö·® ÁöÁ¤ÀÚ
| ¼ö·®ÁöÁ¤ÀÚ | ¸ÅÄ¡Çü |
|---|---|
| * | ¾ÆÅèÀÇ 0°³ ¶Ç´Â º¹¼öÀÇ ¸ÅÄ¡Çü |
| + | ¾ÆÅèÀÇ 1°³ ¶Ç´Â º¹¼öÀÇ ¸ÅÄ¡Çü |
| ? | ¾ÆÅèÀÇ 0°³ ¶Ç´Â 1°³ÀÇ ¸ÅÄ¡Çü |
| { m } | ¾ÆÅèÀÇ Á¤È®ÇÏ°Ô m °³ÀÇ ¸ÅÄ¡Çü |
| { m ,} | ¾ÆÅèÀÇ m °³ÀÌ»óÀÇ ¸ÅÄ¡Çü |
| { m , n } | ¾ÆÅèÀÇ m °³ÀÌ»ó n ÀÌÇÏÀÇ ¸ÅÄ¡Çü. m ´Â n ¸¦ ³ÑÀ» ¼ö ¾ø½À´Ï´Ù. |
| *? | *ÀÇ ÃÖ¼ÒÀÇ ¸ÅÄ¡¸¦ ½Ç½ÃÇÏ´Â ¹öÁ¯ |
| +? | +ÀÇ ÃÖ¼ÒÀÇ ¸ÅÄ¡¸¦ ½Ç½ÃÇÏ´Â ¹öÁ¯ |
| ?? | ? ÀÇ ÃÖ¼ÒÀÇ ¸ÅÄ¡¸¦ ½Ç½ÃÇÏ´Â ¹öÁ¯ |
| { m }? | { m }ÀÇ ÃÖ¼ÒÀÇ ¸ÅÄ¡¸¦ ½Ç½ÃÇÏ´Â ¹öÁ¯ |
| { m ,}? | { m ,}ÀÇ ÃÖ¼ÒÀÇ ¸ÅÄ¡¸¦ ½Ç½ÃÇÏ´Â ¹öÁ¯ |
| { m , n }? | { m , n }ÀÇ ÃÖ¼ÒÀÇ ¸ÅÄ¡¸¦ ½Ç½ÃÇÏ´Â ¹öÁ¯ |
{ ... }(À»)¸¦ »ç¿ëÇÏ´Â Çü½ÄÀº¹Ù¿îµå·Î ¾Ë·ÁÁ® ÀÖ½À´Ï´Ù. ¹Ù¿îµå³»ÀÇ m ¿Í n ¶ó°í ÇÏ´Â ¼ö´Â ºÎÈ£ ¾øÀ½ 10ÁøÁ¤¼öÀ̸ç, 0ÀÌ»ó 255 ÀÌÇÏÀÇ °ªÀ» ¹ÞÀ» ¼ö°¡ ÀÖ½À´Ï´Ù.
ÃÖ´Ü ¸ÅÄ¡¸¦ ½Ç½ÃÇϴ¼ö·®ÁöÁ¤ÀÚ(ARE¸¸À¸·Î »ç¿ë °¡´É)´Â, ´ëÀÀÇÏ´Â Åë»óÀÇ(¿å½ÉÀïÀÌ(ÃÖÀå¸ÅÄ¡)ÀÇ) °Í°ú °°Àº °Í¿¡ ¸ÅÄ¡Çü ÇÕ´Ï´Ù¸¸, ÃÖ´ëÀÇ ¸ÅÄ¡ÇüÀº ¾Æ´Ï°í ÃÖ¼ÒÀÇ ¸ÅÄ¡ÇüÀ» ÃëÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀºSection 9.7.3.5À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
Note: ¼ö·®ÁöÁ¤ÀÚÀÇ Á÷ÈÄ¿¡ ¶Ç ´Ù¸¥ ¼ö·®ÁöÁ¤ÀÚ¸¦ °è¼ÓÇÒ ¼ö ¾ø½À´Ï´Ù. ¼ö·®ÁöÁ¤ÀÚ´Â ½ÄÀ̳ª ºÎ½ÄÀ¸·Î ½ÃÀÛÇÏÁö ¸øÇϰí, ¶Ç,^³ª|ÀÇ Á÷ÈÄ¿¡ ºÙÀÏ ¼öµµ ¾ø½À´Ï´Ù.
Table 9-14. Á¤±Ô Ç¥Çö Á¦¾à
| Á¦¾à | ¼³¸í |
|---|---|
| ^ | ¹®ÀÚ¿ÀÇ ¼±µÎ¿¡¼ ¸ÅÄ¡Çü |
| $ | ¹®ÀÚ¿ÀÇ ¸»¹Ì¿¡¼ ¸ÅÄ¡Çü |
| (? = re ) | ¼±Çà ±àÁ¤ °Ë»öÀº, re ¿¡ ¸ÅÄ¡Çü ÇÏ´Â ¼ºê½ºÆ®¸µÀ¸·ÎºÎÅÍ ½ÃÀ۵Ǵ ÀÓÀÇÀÇ Àå¼Ò¿¡¼ ¸ÅÄ¡Çü ÇÕ´Ï´Ù(ARE¸¸). |
| ¼±Çà ºÎÁ¤ °Ë»öÀº, re ¿¡ ¸ÅÄ¡Çü ÇÏÁö ¾Ê´Â ¼ºê½ºÆ®¸µÀ¸·ÎºÎÅÍ ½ÃÀ۵Ǵ ÀÓÀÇÀÇ Àå¼Ò¿¡ ¸ÅÄ¡Çü ÇÕ´Ï´Ù(ARE¸¸). |
¼±Çà °Ë»ö Á¦¾à¿¡´ÂÈĹæ ÂüÁ¶(Section 9.7.3.3¸¦ ÂüÁ¶)¸¦ Æ÷ÇÔÇÒ ¼ö ¾ø½À´Ï´Ù. ¶Ç, ±× ÁßÀÇ ¸ðµç °ýÈ£´Â ĸÃĵÇÁö ¾ÊÀº °ÍÀ¸·Î °£Áֵ˴ϴÙ.
ºê·¢Å¶½ÄÀ̶õ,[]¾ÈÀÇ ¹®ÀÚÀÇ ¸®½ºÆ®ÀÔ´Ï´Ù. Åë»ó À̰ÍÀº ±× ¸®½ºÆ®³»ÀÇ ÀÓÀÇÀÇ ´ÜÀÏ ¹®ÀÚ¿¡ ¸ÅÄ¡Çü ÇÕ´Ï´Ù(±×·¯³ª, ÀÌÈĸ¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä). ¸®½ºÆ®°¡^·ÎºÎÅÍ ½ÃÀ۵Ǵ °æ¿ì, ±× ¸®½ºÆ®ÀÇ ³ª¸ÓÁö¿¡´Â ¾ø´Â ÀÓÀÇÀÇ ´ÜÀÏ ¹®ÀÚ¿¡ ¸ÅÄ¡Çü ÇÕ´Ï´Ù. ¸®½ºÆ®³»ÀÇ 2°³ÀÇ ¹®ÀÚ°¡-·Î ´Ü¶ôÁö¾îÁö°í ÀÖ¾úÀ» °æ¿ì, À̰ÍÀº 2°³(¸¦ Æ÷ÇÔÇÑ´Ù)ÀÇ »çÀÌ¿¡ ÀÖ´Â ¹®ÀÚ ¹üÀ§ Àüü¸¦ ³ªÅ¸³»´Â »ý·«ÇüÀÌ µË´Ï´Ù. ¿¹¸¦ µé¸é,ASCII¿¡ ÀÖ¾î¼ÀÇ[0-9]´Â ¸ðµç ¼ýÀÚ¿¡ ¸ÅÄ¡Çü ÇÕ´Ï´Ù. ¿¹¸¦ µé¸éa-c-e¶ó°í ÇÏ´Â, Á¾´ÜÀ» °øÀ¯ÇÏ´Â 2°³ÀÇ ¹üÀ§´Â ºÎÁ¤ÇÕ´Ï´Ù. ¹üÀ§´Â ÁÙÀÇ Á¶ÇÕ½ÃÄö½º¿¡ ¸Å¿ì ÀÇÁ¸Çϰí ÀÖ½À´Ï´Ù. ±×·¯¹Ç·Î, À̽ļºÀÖ´Â ÇÁ·Î±×·¥¿¡¼´Â À̰Ϳ¡ ÀÇÁ¸ÇØ µÇÁö ¾Ê¾Æ¾ß ÇÕ´Ï´Ù.
ÀÌ ¸®½ºÆ®¿¡]¸¦ Æ÷ÇÔÇÏ·Á¸é , ±×°ÍÀ» ¼±µÎ ¹®ÀÚ(¸¸¾à ÀÖÀ¸¸é^ÀÇ ÈÄÀÇ ¹®ÀÚ)·Î ÇØÁÖ¼¼¿ä. -¸¦ Æ÷ÇÔÇÏ·Á¸é , ±×°ÍÀ» ¼±µÎ ȤÀº ¸»¹ÌÀÇ ¹®ÀÚ·Î ÇϵçÁö, ȤÀº ¹üÀ§ÀÇ 2¹øÂ°ÀÇ Á¾´ÜÀ¸·Î ÇØÁÖ¼¼¿ä. -(À»)¸¦ ¹üÀ§ÀÇ 1¹øÂ°ÀÇ Á¾´ÜÀ¸·Î »ç¿ëÇÏ·Á¸é ,[. (¿Í)°ú. ]±×¸®°í ±×°ÍÀ» µÑ·¯½Î, Á¶ÇÕ ¿ä¼Ò(¾Æ·¡¿¡ ±â¼úµÈ °ÍÀ» ÂüÁ¶)·Î ÇØ ÁÖ¼¼¿ä. ÀÌ·¯ÇÑ ¹®ÀÚ¿¡´Â ¿¹¿Ü°¡ ÀÖ¾î,[(´ÙÀ½ ´Ü¶ôÀ» ÂüÁ¶), À̽ºÄÉÀÌÇÁ(ARE¸¸), ´Ù¸¥ ¸ðµç Ư¼ö ¹®ÀÚÀÇ Á¶ÇÕÀº ºê·¢Å¶½Ä ³»¿¡¼´Â Ư¼öÇÑ Àǹ̸¦ °¡ÁöÁö ¾Ê½À´Ï´Ù. ƯÈ÷,\´Â ERE¿Í BRE ±ÔÄ¢¿¡ µû¸£´Â °æ¿ì´Â Ưº°ÇÏÁö ¾Ê°Ô µË´Ï´Ù. ±×·¯³ª, ARE¿¡¼´Â(À̽ºÄÉÀÌÇÁÀÇ ½ÃÀÛÀ¸·Î¼) Ưº°ÇÑ Àǹ̸¦ °¡Áý´Ï´Ù.
ºê·¢Å¶½Ä ³»¿¡¼, Á¶ÇÕ ¿ä¼Ò(¹®ÀÚ, ´ÜÀÏ ¹®ÀÚÀÎ°Í Ã³·³ Á¶ÇÕÇÏ´Â º¹¼ö ¹®ÀÚÀÇ ½ÃÄö½º, ȤÀº °¢°¢ÀÇ Á¶ÇÕ ½ÃÄö½ºÀÇ À̸§)°¡[. (¿Í)°ú. ]ÀÇ »çÀÌ¿¡ ÀÖÀ¸¸é, ±× Á¶ÇÕ ¿ä¼ÒÀÇ ¹®ÀÚÀÇ ½ÃÄö½º¸¦ ÀǹÌÇÕ´Ï´Ù. ½ÃÄö½º´Â ºê·¢Å¶½ÄÀÇ ¸®½ºÆ®ÀÇ ÇÑ ¿ä¼ÒÀÔ´Ï´Ù. ÀÌ·¸°Ô ÇÏ¿©, ¿ä¼Ò¸¦ Á¶ÇÕÇÏ´Â º¹¼ö ¹®ÀÚ¸¦ Æ÷ÇÔÇÑ ºê·¢Å¶½ÄÀº ´ÜÀÏ ¹®ÀÚ ÀÌ»óÀ¸·Î ¸ÅÄ¡Çü ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, Á¶ÇÕ½ÃÄö½º°¡chÁ¶ÇÕ ¿ä¼Ò¸¦ Æ÷ÇÔÇÑ °æ¿ì, Á¤±Ô Ç¥Çö[[. ch. ]]*c´Âchchcc¶ó°í ÇÏ´Â ¹®ÀÚÀÇ ÃÖÃÊÀÇ 5°³ ¹®ÀÚ¿¡ ¸ÅÄ¡Çü ÇÕ´Ï´Ù.
Note: ÇöÀç,PostgreSQL´Â º¹¼ö ¹®ÀÚ Á¶ÇÕ ¿ä¼Ò¸¦ °¡ÁöÁö ¾Ê½À´Ï´Ù. ÀÌ Á¤º¸´Â Àå·¡ÀÇ ÇൿÀÇ °¡´É¼ºÀ» ¼³¸íÇÑ °ÍÀÔ´Ï´Ù.
ºê·¢Å¶½Ä ³»¿¡¼, [=°ú=]ÀÇ »çÀÌ¿¡ Á¶ÇÕ ¿ä¼Ò´Â µ¿Ä¡ Ŭ·¡½ºÀÔ´Ï´Ù. ¸ðµç Á¶ÇÕ ¿ä¼ÒÀÇ ¹®ÀÚÀÇ ½ÃÄö½º°¡ ÀÚ½ÅÀ» Æ÷ÇÔÇÏ´Â °Í°ú µî°¡ÀÎ °ÍÀ» ³ªÅ¸³À´Ï´Ù(±× ¹Û¿¡ µî°¡ÀÎ Á¶ÇÕ ¿ä¼Ò°¡ ÀÖ´Â °æ¿ì,[. (¿Í)°ú. ]±×¸®°í µÑ·¯½Î¿´´ÂÁö¿Í °°ÀÌ ´Ù·ç¾îÁý´Ï´Ù). ¿¹¸¦ µé¸é,[[=o=]],[[=^=]]¹×[o^]°¡ ¸ðµÎ µ¿ÀǾîÀ̸é,o¿Í^´Â µ¿Ä¡ Ŭ·¡½ºÀÇ ¸â¹öÀÔ´Ï´Ù. µ¿Ä¡ Ŭ·¡½º´Â ¹üÀ§ÀÇ Á¾´ÜÀÌ µÉ ¼ö ¾ø½À´Ï´Ù.
ºê·¢Å¶½Ä ³»¿¡¼´Â,[:À̶ó°í:]ÀÇ »çÀÌ¿¡ ÀÖ´Â ¹®ÀÚ Å¬·¡½ºÀÇ ¸íĪÀº, ±× Ŭ·¡½º¿¡ ¼ÓÇÏ´Â ¸ðµç ¹®ÀÚÀÇ ¸®½ºÆ®¸¦ ÀǹÌÇÕ´Ï´Ù. Ç¥ÁØ ¹®ÀÚ Å¬·¡½º¸íÀº,alnum,alpha,blank,cntrl,digit,graph,lower,print,punct,space,upper,xdigitÀÔ´Ï´Ù. À̰͵éÀº ctype À¸·Î Á¤ÀÇµÈ ¹®ÀÚ Å¬·¡½º¸¦ ÀǹÌÇÕ´Ï´Ù. ·ÎÄÉÀÏÀº ´Ù¸¥ °ÍÀ» Á¦°ø °¡´ÉÇÕ´Ï´Ù. ¹®ÀÚ Å¬·¡½º´Â ¹üÀ§ÀÇ Á¾´Ü¿¡¼´Â »ç¿ëÇÒ ¼ö°¡ ¾ø½À´Ï´Ù.
ºê·¢Å¶½Ä¿¡´Â 2°³ÀÇ Æ¯¼öÇÑ °æ¿ì°¡ ÀÖ½À´Ï´Ù. [[:<:]]¿Í[[:>:]]¶ó°í ÇÏ´Â ºê·¢Å¶½ÄÀº, ¼±µÎ¿Í Á¾´ÜÀÇ ´Ü¾î°¡ °¢°¢ °ø¹®ÀÚÀÎ °Í¿¡ ¸ÅĪÇÏ´Â Á¦¾àÀÔ´Ï´Ù. ´Ü¾î´Â, ´Ü¾îÀÇ ¹®ÀÚ°¡ ÀüÈĸ¦ µÚµû¸£Áö ¾Ê´Â ´Ü¾î ¹®ÀÚÀÇ ½ÃÄö½º·Î¼ Á¤Àǵ˴ϴÙ. ´Ü¾îÀÇ ¹®ÀÚ´Â 1°³ÀÇalnum¹®ÀÚÀÔ´Ï´Ù( ctype À¸·Î Á¤Àǵǰí ÀÖ½À´Ï´Ù). À̰ÍÀº,POSIX 1003.2¿ÍÀÇ È£È¯¼ºÀº ÀÖ½À´Ï´Ù¸¸, ±×°÷¿¡¼´Â Á¤ÀǵǾî ÀÖÁö ¾ÊÀº ½ÄÀÔ´Ï´Ù. ±×·¯¹Ç·Î, Ÿ½Ã½ºÅÛ¿¡ À̽ļº ÀÖ´Â ¼ÒÇÁÆ®¿þ¾î¿¡¼ÀÇ »ç¿ë¿¡´Â ÁÖÀǰ¡ ÇÊ¿äÇÕ´Ï´Ù. Åë»ó ÈļúÀÇ Á¦¾à À̽ºÄÉÀÌÇÁ°¡ ÀÚÁÖ »ç¿ëµË´Ï´Ù(À̰͵µ Ç¥ÁØÀÌ ¾Æ´Õ´Ï´Ù¸¸, ÀÔ·ÂÇϱⰡ ´õ ½±½À´Ï´Ù).
À̽ºÄÉÀÌÇÁ¶õ,\À¸·Î ½ÃÀÛÇϰí, ¿µ¼ýÀÚ°¡ ±× ÈÄ¿¡ À̾îÁö´Â Ư¼öÇÑ ½ÃÄö½ºÀÔ´Ï´Ù. À̽ºÄÉÀÌÇÁ¿¡´Â, ¹®ÀÚ ¿£Æ®¸®, Ŭ·¡½º »ý·«, Á¦¾à À̽ºÄÉÀÌÇÁ, ÈĹæ ÂüÁ¶¶ó°í ÇÑ ¿©·¯°¡Áö º¯Á¾ÀÌ ÀÖ½À´Ï´Ù. \ÀÇ ÈÄ¿¡ ¿µ¼ýÀÚ°¡ °è¼ÓµÇÁö¸¸, À¯È¿ÇÑ À̽ºÄÉÀÌÇÁ¸¦ ±¸¼ºÇÏÁö ¾Ê´Â ÁÙÀº ARE¿¡¼´Â ºÎÁ¤ÇÕ´Ï´Ù. ERE¿¡´Â À̽ºÄÉÀÌÇÁ´Â ¾ø½À´Ï´Ù. ºê·¢Å¶½ÄÀÇ ¿ÜÃø¿¡¼´Â,\ÀÇ ÈÄ¿¡ ¿µ¼ýÀÚ°¡ °è¼ÓµÇ´Â ÁÙÀº ´ÜÁö º¸Åë ¹®Àڷμ ±× ¹®ÀÚ¸¦ ÀǹÌÇÕ´Ï´Ù. ºê·¢Å¶½ÄÀÇ ¾ÈÂÊ¿¡¼´Â,\Àº º¸Åë ¹®ÀÚÀÔ´Ï´Ù(ÀÌ ¹®ÀÚ´Â ERE¿Í ARE°£ÀÇ ºñȣȯ¼ºÀÇ ÇϳªÀÔ´Ï´Ù).
¹®ÀÚ ¿£Æ®¸® À̽ºÄÉÀÌÇÁ´Â ºñÀμ⠹®ÀÚ³ª RE³»¿¡¼ ºÒÆíÇÑ ¹®ÀÚÀÇ ÁöÁ¤À» °£·«ÈÇϱâ À§Çؼ Á¸ÀçÇÕ´Ï´Ù. À̰͵éÀ»Table 9-15¿¡ ³ªÅ¸³À´Ï´Ù
Ŭ·¡½º »ý·« À̽ºÄÉÀÌÇÁ´Â, ÀÖ´Â ÀϹÝÀûÀ¸·Î »ç¿ëµÇ´Â ¹®ÀÚ Å¬·¡½ºÀÇ »ý·«ÇüÀ» Á¦°øÇÕ´Ï´Ù. À̰͵éÀ»Table 9-16¿¡ ³ªÅ¸³À´Ï´Ù.
Á¦¾à À̽ºÄÉÀÌÇÁ´Â, ÁöÁ¤ÇÑ Á¶°Ç¿¡ ¸Â´Â °æ¿ì¿¡ °ø¹®ÀÚ¿¡ ¸ÅÄ¡Çü ÇÏ´Â Á¦¾àÀ» À̽ºÄÉÀÌÇÁ·Î¼ ³ªÅ¸³½ °ÍÀÔ´Ï´Ù. À̰͵éÀ»Table 9-17¿¡ ³ªÅ¸³À´Ï´Ù.
ÈĹæ ÂüÁ¶(\ n )´Â, ÀÌÀü¿¡ °ýÈ£·Î µÑ·¯½ÎÀÎ ºÎ½Ä¿¡ ÀÇÇØ ¸ÅÄ¡Çü µÈ, n ¹øÂ°ÀÇ µ¿ÀÏ ¹®ÀÚ¿·Î ¸ÅÄ¡Çü ÇÕ´Ï´Ù (Table 9-18¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä). ¿¹¸¦ µé¸é,([bc])\1´ÂbbȤÀºcc¿¡ ¸ÅÄ¡Çü ÇÕ´Ï´Ù¸¸,bc³ªcb¿¡´Â ¸ÅÄ¡Çü ÇÏÁö ¾Ê½À´Ï´Ù. RE¿¡¼´Â ºÎ½Ä Àüü´Â ÈĹæ ÂüÁ¶Àü¿¡ ¾øÀ¸¸é ¾ÈµË´Ï´Ù. ºÎ½ÄÀº °ýÈ£ÀÇ ½ÃÄö½º¿¡ µû¶ó ¹øÈ£¸¦ ¸Å±é´Ï´Ù. ĸÃĵÇÁö¾ÊÀº °ýÈ£´Â ºÎ½ÄÀ» Á¤ÀÇÇÏÁö ¾Ê½À´Ï´Ù.
Note: À̽ºÄÉÀÌÇÁÀÇ ¼±µÎÀÇ °Í\À» SQL ¹®ÀÚ Á¤¼ö·Î¼ ÆÐÅÏ¿¡ ÀÔ·ÂÇÒ ¶§¿¡´Â ÀÌÁß󸮰¡ µÇ¾î¾ß ÇÔÀ» ±â¾ïÇϼ¼¿ä. ÀÌÇÏ¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
'123' ~ E'^\\d{3}' true
Table 9-15. Á¤±Ô Ç¥Çö ¹®ÀÚ ¿£Æ®¸® À̽ºÄÉÀÌÇÁ
| À̽ºÄÉÀÌÇÁ | ¼³¸í |
|---|---|
| \a | C¾ð¾î ³»¿¡¼¿Í °°Àº °æº¸(º§) ¹®ÀÚ |
| \b | C¾ð¾î ³»¿¡¼¿Í °°Àº ¹é½ºÆäÀ̽º |
| \B | backslashÀÇ ÇÊ¿äÇÑ ÀÌÁßÈ È¸¼ö¸¦ ÁÙÀ̱â À§ÇÑ\ÀÇ µ¿ÀǾî |
| \c X | (¿©±â¼ X ´Â ÀÓÀÇÀÇ ¹®ÀÚ·Î) ±× ÇÏÀ§ 5 ºñÆ®°¡ X ¿Í µ¿ÀÏ, ±× ¿ÜÀÇ ºñÆ®°¡ 0ÀÌ µÇ´Â ¹®ÀÚ |
| \e | Á¶ÇÕ¼ø¸íÀÌESC°¡ µÇ´Â ¹®ÀÚ, À̰Ϳ¡ ½ÇÆÐÇϸé, 033À̶ó°í ÇÏ´Â 8 Áø¼öÄ¡¸¦ °¡Áö´Â ¹®ÀÚ. |
| \f | C¾ð¾î ³»¿¡¼¿Í °°Àº ÆûÇǵå |
| \n | C¾ð¾î ³»¿¡¼¿Í °°Àº °³Çà |
| \r | C¾ð¾î ³»¿¡¼¿Í °°Àº º¹±ÍºÎÈ£ |
| \t | C¾ð¾î ³»¿¡¼¿Í °°Àº ¼öÆò ÅÇ |
| \u wxyz | (¿©±â¼ wxyz ´Â Á¤È®ÇÏ°Ô 4ÀÚ¸®¼öÀÇ 16 Áø¼ö·Î) »ç¿ë ¸Ó½ÅÀÇ ¹ÙÀÌÆ®½ÃÄö½º·Î ³ªÅ¸³½,U+ wxyz ¶ó°í ÇÏ´Â UTF16(16 ºñÆ®, Unicode) ¹®ÀÚ |
| \U stuvwxyz | (¿©±â¼ stuvwxyz ´Â Á¤È®ÇÏ°Ô 8ÀÚ¸®¼öÀÇ 16 Áø¼öÀÔ´Ï´Ù. ) ¾î¶°ÇÑ °¡Á¤À» À§Çؼ È®º¸µÈ Unicode È®Àå, 32 ºñÆ® |
| \v | C¾ð¾î ³»¿¡¼¿Í °°Àº ¼öÁ÷ ÅÇ |
| \x hhh | (¿©±â¼ hhh ´Â ÀÓÀÇÀÇ 16 Áø¼öÀÇ ÁÙ·Î) ±× ¹®ÀÚÀÇ 16 Áø¼öÄ¡°¡0x hhh °¡ µÇ´Â ¹®ÀÚ(»ç¿ëµÇ´Â 16 Áø¼öÀÇ ÀÚ¸®¼ö¿¡ °ü°è¾øÀÌ ´ÜÀÏÀÇ ¹®ÀÚ) |
| \0 | ±× °ªÀÌ0ÀÌ µÇ´Â ¹®ÀÚ |
| \ xy | (¿©±â¼ xy ´Â Á¤È®ÇÏ°Ô 2ÀÚ¸®¼öÀÇ 8 Áø¼ö·Î,ÈĹæ ÂüÁ¶´Â ¾Æ´Ï´Ù) ±× °ªÀÌ0 xy °¡ µÇ´Â ¹®ÀÚ |
| \ xyz | (¿©±â¼ xyz ´Â Á¤È®ÇÏ°Ô 3ÀÚ¸®¼öÀÇ 8 Áø¼ö·Î,ÈĹæ ÂüÁ¶´Â ¾Æ´Ï´Ù) ±× °ªÀÌ0 xyz °¡ µÇ´Â ¹®ÀÚ |
16 Áø¼öÀÇ ÀÚ¸®¼ö´Â0-9,a-f,A-FÀÔ´Ï´Ù. 8 Áø¼öÀÇ ÀÚ¸®¼ö´Â0-7ÀÔ´Ï´Ù.
ÀÌ ¹®ÀÚ ¿£Æ®¸® À̽ºÄÉÀÌÇÁ´Â Ç×»ó º¸Åë ¹®ÀÚ·Î ÇØ¼®µË´Ï´Ù. ¿¹¸¦ µé¸é,\135Àº ASCIIÀÇ]µÇ¾î,\135´Â ºê·¢Å¶½ÄÀÇ Á¾´ÜÀ¸·Î´Â µÇÁö ¾Ê½À´Ï´Ù.
Table 9-16. Á¤±Ô Ç¥Çö Ŭ·¡½º »ý·« À̽ºÄÉÀÌÇÁ<
| À̽ºÄÉÀÌÇÁ | ¼³¸í |
|---|---|
| \d | [[:digit:]] |
| \s | [[:space:]] |
| \w | [[:alnum:]_] (note underscore is included) |
| \D | [^[:digit:]] |
| \S | [^[:space:]] |
| \W | [^[:alnum:]_] (¾ð´õ ½ºÄھ Æ÷ÇԵǴ °Í¿¡ ÁÖÀÇ) |
ºê·¢Å¶½Ä ³»¿¡¼´Â. \d,\s, ¹×\w´Â ±× ¿ÜÃøÀÎ ´ë°ýÈ£¸¦ ÀÒ¾î,\D,\S¹×\W´Â ºÎÁ¤ÇÕ´Ï´Ù(À̱⠶§¹®¿¡, ¿¹¸¦ µé¸é[a-c\d]´Â[a-c[:digit:]]¿Í °°°Ô µË´Ï´Ù. ¶Ç,[a-c\D]´Â[a-c^[:digit:]]¿Í °°°Ô µÇ¾î, ºÎÁ¤ÇÕ´Ï´Ù).
Table 9-17. Á¤±Ô Ç¥Çö Á¦¾à À̽ºÄÉÀÌÇÁ
| À̽ºÄÉÀÌÇÁ | ¼³¸í |
|---|---|
| \A | ¹®ÀÚ¿ÀÇ ¼±µÎ¿¡¼¸¸ ¸ÅÄ¡Çü ÇÕ´Ï´Ù(^¿ÍÀÇ Â÷ÀÌ¿¡ ´ëÇØ¼´ÂSection 9.7.3.5À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä). |
| \m | ´Ü¾îÀÇ ¼±µÎ¿¡¼¸¸ ¸ÅÄ¡Çü ÇÕ´Ï´Ù. |
| \M | ´Ü¾îÀÇ ¸»¹Ì¿¡¼¸¸ ¸ÅÄ¡Çü ÇÕ´Ï´Ù. |
| \y | ´Ü¾îÀÇ ¼±µÎ ȤÀº ¸»¹Ì¿¡¼¸¸ ¸ÅÄ¡Çü ÇÕ´Ï´Ù. |
| \Y | ´Ü¾îÀÇ ¼±µÎ ȤÀº ¸»¹Ì ÀÌ¿ÜÀÇ À§Ä¡¿¡¼¸¸ ¸ÅÄ¡Çü ÇÕ´Ï´Ù. |
| \Z | ¹®ÀÚ¿ÀÇ ¸»¹Ì¿¡¼¸¸ ¸ÅÄ¡Çü ÇÕ´Ï´Ù($¿ÍÀÇ Â÷ÀÌ¿¡ ´ëÇØ¼´ÂSection 9.7.3.5À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä). |
´Ü¾î´Â Àü¼úÀÇ[[:<:]]¿Í[[:>:]]ÀÇ ±ÔÁ¤ ´ë·Î Á¤Àǵ˴ϴÙ. ºê·¢Å¶½Ä ³»¿¡¼, Á¦¾à À̽ºÄÉÀÌÇÁ´Â ºÎÁ¤ÇÕ´Ï´Ù.
Table 9-18. Á¤±Ô Ç¥Çö ÈĹæ ÂüÁ¶
| À̽ºÄÉÀÌÇÁ | ¼³¸í |
|---|---|
| \ m | (¿©±â¼ m ´Â ºñÁ¦·ÎÀÇ ¼öÀÔ´Ï´Ù. ) ºÎ½ÄÀÇ m ¹øÂ°¿¡ÀÇ ÈĹæ ÂüÁ¶ |
| \ mnn | (¿©±â¼ m ´Â ºñÁ¦·ÎÀÇ ¼öÀÔ´Ï´Ù. nn ·Î ÇÑÃþ ´õ ÀÚ¸®¼ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. mnn 10 Áø¼öÄ¡´Â Ŭ·Î¡ ĸÃÄÇÑ °ýÈ£ÀÇ ¼öº¸´Ù ¸¹À¸¸é ¾ÈµË´Ï´Ù. ) ºÎ½ÄÀÇ mnn ¹øÂ°¿¡ÀÇ ÈĹæ ÂüÁ¶ |
Note: 8 Áø¼öÀÇ ¹®ÀÚ ¿£Æ®¸® À̽ºÄÉÀÌÇÁ¿Í ÈĹæ ÂüÁ¶µ¿¾È¿¡´Â ¿ª»çÀûÀÎ ¾Ö¸Å¼ºÀÌ ÀÖ½À´Ï´Ù. À§¿¡¼ ÈùÆ®·Î¼ °¡¸®Å² °Íó·³ À̰ÍÀº ¹ß°ßÀû ¼ö¹ýÀ¸·Î ÇØ°áµË´Ï´Ù. ¼±µÎÀÇ 0Àº Ç×»ó 8 Áø¼ö À̽ºÄÉÀÌÇÁ¸¦ ³ªÅ¸³À´Ï´Ù. ±× ÈÄ¿¡ ¼ýÀÚ°¡ °è¼ÓµÇÁö ¾Ê´Â ´ÜÀÏÀÇ 0ÀÌ ¾Æ´Ñ ¼ýÀÚ´Â Ç×»ó ÈĹæ ÂüÁ¶·Î¼ ÇØ¼®µË´Ï´Ù. 0ºÎÅÍ ½ÃÀÛµÇÁö ¾Ê´Â º¹¼ö ¼ýÀÚÀÇ ½ÃÄö½º´Â, ÀûÀýÇÑ ºÎ½ÄÀÇ µÚ¿¡ ÀÖÀ¸¸é(Áï, ±× ¹øÈ£°¡ ÈĹæ ÂüÁ¶¿ëÀÇ ¹üÀ§³»¿¡ ÀÖÀ¸¸é) ÈĹæ ÂüÁ¶·Î¼ ÇØ¼®µË´Ï´Ù. ¾Æ´Ï¸é, 8 Áø¼ö·Î¼ ÇØ¼®µË´Ï´Ù.
»ó¼úÀÇ ÁÖ±¸¹® ¿Ü¿¡, Ư¼öÇÑ Çü½ÄÀ̳ª Àâ´ÙÇÑ ±¸¹®ÀûÀÎ ±â´ÉÀÌ »ç¿ë °¡´ÉÇÕ´Ï´Ù.
Åë»ó, »ç¿ëµÇ´Â REÀÇ Á¾·ù´Âregex_flavor·Î °áÁ¤µË´Ï´Ù. ±×·¯³ª,°áÁ¤ÀÚÀüÄ¡»ç¿¡ ÀÇÇØ ¿À¹ö¶óÀÌµå µÉ ¼ö ÀÖ½À´Ï´Ù. RE°¡***:·ÎºÎÅÍ ½ÃÀ۵Ǵ °ÍÀ̸é,regex_flavor¿¡ °ü°è¾øÀÌ, REÀÇ ³ª¸ÓÁö´Â ARE¶ó°í ÇØ¼®µË´Ï´Ù. RE°¡***=·ÎºÎÅÍ ½ÃÀ۵Ǵ °ÍÀ̸é, REÀÇ ³ª¸ÓÁö´Â, ¸ðµç ¹®ÀÚ¸¦ º¸Åë ¹®ÀÚ·Î °£ÁÖÇÑ ¸®ÅÍ·² ¹®ÀÚ¿À¸·Î ÇØ¼®µË´Ï´Ù.
ARE´Â³»ÀåµÈ ¿É¼ÇÀ¸·Î ½ÃÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. (? xyz )¶ó°í ÇÏ´Â ½ÃÄö½º·Î ³ª¸ÓÁöÀÇ RE¿¡ ¿µÇâÀ» ÁÖ´Â ¿É¼ÇÀ» ÁöÁ¤ÇÕ´Ï´Ù(¿©±â¼ xyz ´Â 1°³ÀÌ»óÀÇ ¿µ¹®ÀÚÀÔ´Ï´Ù). ÀÌ ¿É¼ÇÀº, »çÀüÀ¸·Î °áÁ¤µÈ(REÁ¾·ù³ª ´ë¹®ÀÚ ¼Ò¹®ÀÚÀÇ ±¸º°À» Æ÷ÇÔÇÑ´Ù) ¿É¼ÇÀ» ¿À¹ö¶óÀ̵åÇÕ´Ï´Ù. »ç¿ë °¡´ÉÇÑ ¿É¼Ç ¹®ÀÚ¸¦Table 9-19¿¡ ³ªÅ¸³À´Ï´Ù.
Table 9-19. ARE ³»ÀåµÈ ¿É¼Ç ¹®ÀÚ
| ¿É¼Ç | ¼³¸í |
|---|---|
| b | ³ª¸ÓÁöÀÇ RE´Â BRE |
| c | ´ë¹®ÀÚ ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏ´Â ¸ÅÄ¡Çü(¿¬»êÀÚ·Î ±ÔÁ¤µÇ´Â ´ë¹®ÀÚ ¼Ò¹®ÀÚÀÇ ±¸º°º¸´Ù ÀÌ ÁöÁ¤ÀÌ ¿ì¼±µË´Ï´Ù). |
| e | ³ª¸ÓÁöÀÇ RE´Â ERE |
| i | ´ë¹®ÀÚ ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅÄ¡Çü(Section 9.7.3.5¸¦ ÂüÁ¶)(¿¬»êÀÚ·Î ±ÔÁ¤µÇ´Â ´ë¹®ÀÚ ¼Ò¹®ÀÚÀÇ ±¸º°º¸´Ù ÀÌ ÁöÁ¤ÀÌ ¿ì¼±µË´Ï´Ù). |
| m | nÀÇ È÷½ºÅ丮Äà µ¿ÀǾî |
| n | °³ÇàÀ» ±¸º°ÇÏ´Â ¸ÅĪ(Section 9.7.3.5¸¦ ÂüÁ¶) |
| p | ºÎºÐÀûÀÎ °³ÇàÀ» ±¸º°ÇÏ´Â ¸ÅĪ(Section 9.7.3.5¸¦ ÂüÁ¶) |
| q | ³ª¸ÓÁöÀÇ RE´Â ¸®ÅÍ·²("ÀοëºÎÈ£ ºÙÀÌ°í µÈ") ¹®ÀÚ¿, ¸ðµÎ º¸Åë ¹®ÀÚ |
| s | °³ÇàÀ» ±¸º°ÇÏÁö ¾Ê´Â ¸ÅÄ¡Çü(µðÆúÆ®) |
| t | ŸÀÌÆ®ÇÑ ±¸¹®(µðÆúÆ®, ¾Æ·¡¿¡ ±âÀçµÇ´Â °ÍÀ» ÂüÁ¶) |
| w | ºÎºÐÀûÀÎ °³Çà ±¸º°ÀÇ ¿ª("weird") ¸ÅÄ¡(Section 9.7.3.5¸¦ ÂüÁ¶) |
| x | È®Àå ±¸¹®(¾Æ·¡¿¡ ±âÀçµÇ´Â °ÍÀ» ÂüÁ¶) |
³»ÀåµÈ ¿É¼ÇÀº ±× ½ÃÄö½ºÀÇ Á¾´Ü)À¸·Î À¯È¿ÇÏ°Ô µË´Ï´Ù. AREÀÇ ¼±µÎ(¸¸¾à***:°áÁ¤ÀÚ°¡ ÀÖÀ¸¸é ±× ÈÄ)¿¡¼¸¸ ÀÌ¿ë °¡´ÉÇÕ´Ï´Ù.
¸ðµç ¹®ÀÚ°¡ Àǹ̸¦ °¡Áö´Â, Åë»óÀÇ(tight) RE±¸¹®¿¡ °¡¼¼ÇØx³»ÀåµÈ ¿É¼ÇÀ» ÁöÁ¤ÇÏ´Â °ÍÀ¸·Î ÀÌ¿ëÇÒ ¼ö ÀÖ´ÂÈ®À屸¹®ÀÌ ÀÖ½À´Ï´Ù. È®Àå ±¸¹®¿¡¼´Â, RE³»ÀÇ °ø¹é ¹®ÀÚ´Â ¹«½ÃµÇ¾î#¿Í ±× ÈÄÀÇ °³Çà(ȤÀº REÀÇ Á¾´Ü)ÀÇ »çÀÌÀÇ ¸ðµç ¹®ÀÚµµ °°½À´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, º¹ÀâÇÑ RE¸¦ ´Ü¶ôÁþ°í, ÄÚ¸àÆ®ÇÏ´Â °ÍÀÌ °¡´ÉÇÏ°Ô µË´Ï´Ù. ±âº» ±ÔÄ¢¿¡ ´ëÇØ¼ 3°³ÀÇ ¿¹¿Ü°¡ ÀÖ½À´Ï´Ù.
\°¡ °ø¹é ¹®ÀÚ È¤Àº#Àü¿¡ ±âÀçµÈ °ÍÀº º¸°ü À¯ÁöµË´Ï´Ù.
ºê·¢Å¶½Ä ³»¿¡¼, °ø¹é ¹®ÀÚ È¤Àº#Àº º¸°ü À¯ÁöµË´Ï´Ù.
(? :µîÀÇ º¹¼ö ¹®ÀÚ ½Éº¼¿¡¼´Â, °ø¹é ¹®ÀÚ¿Í ÄÚ¸àÆ®´Â ºÎÁ¤ÇÕ´Ï´Ù.
¿©±â¼ÀÇ °ø¹é ¹®ÀÚ¶õ, °ø¹é, ÅÇ, °³Çà, ½ºÆäÀ̽º ¹®ÀÚ Å¬·¡½º¿¡ ¼ÓÇÏ´Â ¹®ÀÚÀÔ´Ï´Ù.
¸¶Áö¸·À¸·Î, AREÀÇ ºê·¢Å¶½ÄÀÇ ¿ÜÃø¿¡¼´Â,(? # ttt )½ÃÄö½º°¡ ÄÚ¸àÆ®°¡ µË´Ï´Ù (¿©±â¼ ttt ´Â)¸¦ Æ÷ÇÔÇÏÁö ¾Ê´Â ÀÓÀÇÀÇ ÅØ½ºÆ®ÀÔ´Ï´Ù). ¹Ýº¹ÀÌ µË´Ï´Ù¸¸, À̰ÍÀº(? :µîÀÇ º¹¼ö ¹®ÀÚ ½Éº¼ÀÇ ¹®ÀÚ°£À¸·Î´Â »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ·¯ÇÑ ÄÚ¸àÆ®´Â ½Ç¿ë¼ºÀ̶ó°í ÇÏ´Â °Íº¸´Ù ¿ª»çÀû ¼Ò»êÀÔ´Ï´Ù. ±× ¶§¹®¿¡, ÀÌ »ç¿ëÀº ±ÇÇÏÁö ¾Ê½À´Ï´Ù. ´ë½Å¿¡ È®Àå ±¸¹®À» »ç¿ëÇØ ÁÖ¼¼¿ä.
óÀ½À¸·Î***=°áÁ¤ÀÚ°¡ ÁöÁ¤µÇ¾î À¯ÀúÀÇ ÀÔ·ÂÀÌ RE´Â ¾Æ´Ï°í ¸®ÅÍ·²·Î¼ ´Ù·ç¾îÁö´Â °æ¿ì, ÀÌ·¯ÇÑ ¸ÞŸ ±¸¹® È®ÀåÀº »ç¿ë ÇÒ ¼ö ¾ø½À´Ï´Ù .
RE°¡ ij¸¯ÅÍ ½ºÆ®¸µ ³»ÀÇ Çϳª ÀÌ»óÀÇ ¼ºê½ºÆ®¸µ°ú ¸ÅÄ¡Çü ÇÏ´Â °æ¿ì¿¡ ´ëÇØ, RE´Â ÃÖÃÊ·Î ¸ÅÄ¡°¡ ½ÃÀÛµÈ ¼ºê½ºÆ®¸µ°ú ¸ÅÄ¡Çü ÇÕ´Ï´Ù. ±× À§Ä¡·ÎºÎÅÍ ¶Ç 1°³ÀÌ»óÀÇ ¼ºê½ºÆ®¸µ°ú ¸ÅÄ¡Çü ÇßÀ» ¶§´Â, Á¤±Ô Ç¥ÇöÀºÃÖ´Ü ¸ÅÄ¡¸¦ ½Ç½ÃÇÏÁö ¾Ê´Â(¿å½ÉÀïÀÌ(ÃÖÀå¸ÅÄ¡)Çü)Àΰ¡ÃÖ´Ü ¸ÅÄ¡¸¦ ½Ç½ÃÇÏ´Â(ºñ¿å½ÉÀïÀÌ(ÃִܸÅÄ¡)Çü)µî¿¡ ÀÇÇØ¼, ÃÖÀå ÀÏÄ¡ ȤÀº ÃÖ´Ü ÀÏÄ¡ÀÇ ¹®ÀÚ¿ ÁßÀÇ Çϳª·Î ¸ÅÄ¡Çü ÇÕ´Ï´Ù
RE°¡ ÃÖÀå¸ÅÄ¡Àΰ¡, ÃִܸÅÄ¡ Àΰ¡´Â ÀÌÇÏÀÇ ±ÔÄ¢¿¡ ÀÇÇØ Á¤ÇØÁý´Ï´Ù.
´ëºÎºÐÀÇ ¾ÆÅè ¹× ¸ðµç ½ÄÀº ÃÖÀå¸ÅÄ¡ ¼Ó¼ºÀ» °¡ÁöÁö ¾Ê½À´Ï´Ù(À̰͵éÀº º¯µ¿ÇÏ´Â ¾çÀÇ ÅØ½ºÆ®¿¡ ÀüÇô ¸ÅÄ¡Çü ÇÏÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù).
RE¿¡ °ýÈ£¸¦ µÑ·¯½Î´Â °ÍÀº ÃÖÀå¸ÅÄ¡Àΰ¡ ¾î¶²°¡¸¦ º¯°æÇÏÁö ¾Ê½À´Ï´Ù.
{ m }ȤÀº{ m }? ÀÇ °íÁ¤ ¹Ýº¹¼öÀÇ ¼ö·®ÁöÁ¤ÀÚ¸¦ °¡Áö´Â ¼ö·®ÁöÁ¤ ÷ºÎ ¾ÆÅèÀº, ¾ÆÅè ÀڽŰú µ¿ÀÏÇÑ ÃÖÀå¸ÅÄ¡¸¦ °¡Áý´Ï´Ù (ÀüÇô °¡ÁöÁö ¾ÊÀ» °¡´É¼ºµµ ÀÖ½À´Ï´Ù).
´Ù¸¥ Åë»óÀÇ ¼ö·®ÁöÁ¤ÀÚ({ m , n }, m ¿Í n °¡ µ¿ÀÏÇÑ °æ¿ìµµ Æ÷ÇÔÇÕ´Ï´Ù)¸¦ °¡Áö´Â ¾çÁöÁ¤ ÷ºÎ ¾ÆÅèÀº ¿å½ÉÀïÀÌ(ÃÖÀå¸ÅÄ¡) ÇüÅÂÀÔ´Ï´Ù(ÃÖÀå ¸ÅÄ¡¸¦ »ç¿ëÇÕ´Ï´Ù).
´Ù¸¥ ºñ¿å½ÉÀïÀÌ(ÃִܸÅÄ¡)Çü ¼ö·®ÁöÁ¤ÀÚ({ m , n }? , m ¿Í n °¡ µ¿ÀÏÇÑ °æ¿ìµµ Æ÷ÇÔÇÕ´Ï´Ù)¸¦ °¡Áö´Â ¾çÁöÁ¤ ÷ºÎ ¾ÆÅèÀº ºñ¿å½ÉÀïÀÌ(ÃִܸÅÄ¡)ÇüÀÔ´Ï´Ù(ÃÖ´Ü ¸ÅÄ¡¸¦ »ç¿ëÇÕ´Ï´Ù).
ÃÖ»óÁ¤µµ ·¹º§ÀÇ|¿¬»êÀÚ¸¦ °¡ÁöÁö ¾Ê´Â REÀÎ ºê·£Ä¡(branch)´Â, ÃÖÃÊÀÇ ¿å½ÉÀïÀÌ(ÃÖÀå¸ÅÄ¡) ¼Ó¼ºÀ» °¡Áö´Â ¾çÁöÁ¤ ÷ºÎ ¾ÆÅè°ú µ¿ÀÏÇÑ ¿å½ÉÀïÀÌ(ÃÖÀå¸ÅÄ¡) ¼Ó¼ºÀ» °¡Áý´Ï´Ù.
|¿¬»êÀÚ·Î Á¢¼ÓµÈ 2°³ ÀÌ»óÀÇ ºê·£Ä¡(branch)·Î ±¸¼ºµÇ´Â RE´Â Ç×»ó ¿å½ÉÀïÀÌ ÇüÅÂ(ÃÖÀå¸ÅÄ¡)ÀÔ´Ï´Ù.
À§ÀÇ ±ÔÄ¢Àº, °³°³ÀÇ ¾çÁöÁ¤ ÷ºÎ ¾ÆÅè ¸¸ÀÌ ¾Æ´Ï°í, ¾çÁöÁ¤ ÷ºÎ ¾ÆÅèÀ» º¹¼ö Æ÷ÇÔÇÑ ºê·£Ä¡(branch)³ª REÀüüÀÇ ¿å½ÉÀïÀÌ(ÃÖÀå¸ÅÄ¡) ¼Ó¼º¿¡ °ü·ÃÇÕ´Ï´Ù. Áï, ºê·£Ä¡(branch)³ª REÀüü°¡ ÀüüÀûÀ¸·Î ÃÖÀå ¶Ç´Â ÃÖ´ÜÀÇ ¼ºê½ºÆ®¸µ¿¡ ¸ÅÄ¡Çü ÇÑ´Ù°í ÇÏ´Â ¹æ¹ýÀ¸·Î ¸ÅÄ¡ 󸮸¦ ÇÕ´Ï´Ù. ÀüüÀÇ ¸ÅÄ¡ÇüÀÇ ±æÀ̰¡ Á¤ÇØÁö¸é, ƯÁ¤ÀÇ ºÎºÐ½Ä¿¡ ¸ÅÄ¡Çü ÇÏ´Â ºÎºÐÀÌ ±× ºÎºÐ½ÄÀÇ ¿å½ÉÀïÀÌ(ÃÖÀå¸ÅÄ¡) ¼Ó¼º¿¡ ÀÇÇØ Á¤ÇØÁý´Ï´Ù. ÀÌ ¶§, RE³»¿¡¼ º¸´Ù Àü¿¡ ÀÖ´Â ºÎºÐ½ÄÀÌ ÈÄ¿¡ ÀÖ´Â ºÎºÐ½Äº¸´Ù ³ôÀº ¿ì¼±µµ¸¦ °¡Áý´Ï´Ù.
ÀÌ ÀǹÌÀÇ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
SELECT SUBSTRING('XY1234Z', 'Y*([0-9]{1,3})');
Result:
123
SELECT SUBSTRING('XY1234Z', 'Y*? ([0-9]{1,3})');
Result:
1
ÃÖÃÊÀÇ ¿¹¿¡¼´Â,Y*°¡ ¿å½ÉÀïÀÌ(ÃÖÀå¸ÅÄ¡) ÇüÅÂÀ̱⠶§¹®¿¡, RE´Â ÀüüÀûÀ¸·Î ¿å½ÉÀïÀÌ(ÃÖÀå¸ÅÄ¡) ÇüÅÂÀÔ´Ï´Ù. ¸ÅÄ¡ÇüÀºYÀÇ À§Ä¡·ÎºÎÅÍ ½ÃÀ۵Ǿî, °Å±â·ÎºÎÅÍ °¡´ÉÇÑ ÇÑ ÃÖÀåÀÇ ¹®ÀÚ¿·Î ¸ÅÄ¡Çü ÇÕ´Ï´Ù. ÁïY123°¡ µË´Ï´Ù. Ãâ·ÂÀº °ýÈ£·Î µÑ·¯½ÎÀÎ ºÎºÐ, Áï123ÀÌ µË´Ï´Ù. 2¹øÂ°ÀÇ ¿¹¿¡¼´Â,Y*? ÇÏÁö¸¸ ºñ¿å½ÉÀïÀÌ(ÃִܸÅÄ¡)ÇüÀ̱⠶§¹®¿¡, RE´Â ÀüüÀûÀ¸·Î ºñ¿å½ÉÀïÀÌ(ÃִܸÅÄ¡)ÇüÀÔ´Ï´Ù. ¸ÅÄ¡ÇüÀºYÀÇ À§Ä¡·ÎºÎÅÍ ½ÃÀ۵Ǿî, °Å±â·ÎºÎÅÍ °¡´ÉÇÑ ÇÑ ÃÖ´ÜÀÇ ¹®ÀÚ¿·Î ¸ÅÄ¡Çü ÇÕ´Ï´Ù. ÁïY1°¡ µË´Ï´Ù. ºÎºÐ½Ä[0-9]{1,3}Àº ¿å½ÉÀïÀÌ(ÃÖÀå¸ÅÄ¡) ÇüÅÂÀÔ´Ï´Ù¸¸, °áÁ¤µÈ ¸ÅÄ¡Çü ÇÏ´Â ÀüüÀÇ ±æÀ̸¦ º¯°æÇÒ ¼ö ¾ø½À´Ï´Ù. µû¶ó¼, °Á¦ÀûÀ¸·Î1¿¡ ¸ÅÄ¡Çü ÇÏ°Ô µË´Ï´Ù.
Á¤¸®Çϸé, RE°¡ ¿å½ÉÀïÀÌ(ÃÖÀå¸ÅÄ¡) ÇüÅ ºÎºÐ½Ä°ú ºñ¿å½ÉÀïÀÌ(ÃִܸÅÄ¡)Çü ºÎºÐ½ÄÀÇ ¾çÂÊ ¸ðµÎ¸¦ °¡Áö´Â °æ¿ì, ÀüüÀÇ ¸ÅÄ¡ÀåÀº REÀüü¿¡ ÇÒ´çÇÒ ¼ö ÀÖ´Â ¼Ó¼º¿¡ µû¶ó, ÃÖÀå ¸ÅÄ¡ÀåÀ̳ª ÃÖ´Ü ¸ÅÄ¡ÀåÀÌ µË´Ï´Ù. ºÎºÐ½Ä¿¡ ÇÒ´çÇÒ ¼ö ÀÖ¾ú´ø ¼Ó¼ºÀº, ºÎºÐ½Ä ¿¡¼ ¾ó¸¶³ªÀÇ ¾çÀ» ±× ºÎºÐ½Ä ¿¡¼"¼Òºñ"ÇÒ ¼ö ÀÖÀ»±î¿¡¸¸ ¿µÇâÀ» ÁÝ´Ï´Ù.
{1,1}¹×{1,1}? ¼ö·®ÁöÁ¤ÀÚ¸¦ ºÎ½Ä ȤÀº REÀüü¿¡ »ç¿ëÇØ, °¢°¢, ¿å½ÉÀïÀÌ(ÃÖÀå¸ÅÄ¡) ¶Ç´Â ¿å½ÉÀïÀÌ(ÃÖÀå¸ÅÄ¡)¸¦ °Á¦ÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù.
¸ÅÄ¡ÇüÀÇ ±æÀÌ´Â Á¶ÇÕ ¿ä¼Ò´Â ¾Æ´Ï°í ¹®ÀÚ·Î ÃøÁ¤µË´Ï´Ù. °ø¹®ÀÚ¿Àº ÀüÇô ¸ÅÄ¡Çü ÇÏ´Â ¿ä¼Ò°¡ ¾ø´Â ¹®ÀÚ¿º¸´Ù ±æ´Ù°í »ý°¢µË´Ï´Ù. ¿¹¸¦ µé¸é,bb*´ÂabbbcÀÇ ÇѰ¡¿îµ¥ÀÇ 3 °³ÀÇ ¹®ÀÚ¿Í ¸ÅÄ¡Çü ÇÕ´Ï´Ù, (week|wee)(night|knights)´ÂweeknightsÀÇ ¸ðµç 10°³ÀÇ ¹®ÀÚ¿Í ¸ÅÄ¡ÇüÇÕ´Ï´Ù, abc¿¡ ´ëÇØ¼(. *). *ÇÏÁö¸¸ ¸ÅÄ¡Çü µÇ¸é, °ýÈ£³»ÀÇ ºÎºÐ Á¤±Ô Ç¥ÇöÀº 3°³ÀÇ ¹®ÀÚ ¸ðµÎ¿¡ ¸ÅÄ¡ÇüÇÕ´Ï´Ù, bc¿¡ ´ëÇØ¼(a*)*°¡ ¸ÅÄ¡Çü µÇ¸é, ÀüüÀÇ RE¿Í °ýÈ£³»ÀÇ Á¤±Ô Ç¥ÇöÀº °ø¹®ÀÚ¿¿¡ ¸ÅÄ¡Çü ÇÕ´Ï´Ù.
¸¸¾à ´ë¹®ÀÚ ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅĪÀÌ ÁöÁ¤µÇ¸é, ¾ËÆÄºª ¹®ÀÚÀÇ ´ë¹®ÀÚ ¼Ò¹®ÀÚÀÇ ±¸º°ÀÌ ¿ÏÀüÈ÷ ¾ø¾îÁø °Í°ú °°Àº È¿°ú¸¦ ÁÝ´Ï´Ù. ºê·¢Å¶½ÄÀÇ ¿ÜÃø¿¡ ¾ËÆÄºªÀÇ ´ë¹®ÀÚ ¼Ò¹®ÀÚ°¡ ¼¯ÀÎ Åë»óÀÇ ¹®ÀÚ°¡ ³ª¿ÔÀ» °æ¿ì, ¿¹¸¦ µé¸é,x°¡[xX]°¡ µÇµµ·Ï ´ë¹®ÀÚ ¼Ò¹®ÀÚ ¸ðµÎ ºê·¢Å¶½Ä¿¡ ½ÇÁúÀûÀ¸·Î ÀüȯµË´Ï´Ù. ºê·¢Å¶½Ä¾È¿¡ ³ªÅ¸³µÀ» ¶§´Â, (¿¹¸¦ µé¸é)[x]°¡[xX]°¡ µÇ¾î, ¶Ç[^x]°¡[^xX]°¡ µÇµµ·Ï, ¸ðµç ´ë¹®ÀÚ ¼Ò¹®ÀÚ °¢°¢ÀÇ ´ë°¡ ºê·¢Å¶½Ä¿¡ Ãß°¡µË´Ï´Ù.
°³ÇàÀ» ±¸º°ÇÏ´Â ¸ÅÄ¡ÇüÀÌ ÁöÁ¤µÇ¸é,. (¿Í)°ú^¸¦ »ç¿ëÇÏ´Â ºê·¢Å¶½ÄÀº(RE°¡ ¸í½ÃÀûÀ¸·Î Á¶Á¤µÇ°í ÀÖ¾ú´Ù°í ÇØµµ ¸ÅÄ¡ÇüÀÌ °³ÇàÀ» °ÉÄ¡Áö ¾Ê°Ô Çϱâ À§Çؼ) °³Çà ¹®ÀÚ¿¡ ¸ÅÄ¡Çü ÇÏÁö ¾Ê°Ô µË´Ï´Ù. ¶Ç,^¶ó°í$´Â °¢°¢ °³Çà Á÷ÈÄ¿Í Á÷ÀüÀÇ °ø¹®ÀÚ¿¿¡ ¸ÅÄ¡ÇüÇÕ´Ï´Ù, °Ô´Ù°¡ °¢°¢ ¹®ÀÚ¿ÀÇ ¼±µÎ¿Í ¸»¹Ì¿¡ ¸ÅÄ¡Çü ÇÕ´Ï´Ù. ±×·¯³ª, ARE À̽ºÄÉÀÌÇÁÀÇ\A¿Í\Z´Â, °è¼ÓÇÏ¿© ¹®ÀÚ¿ÀÇ ¼±µÎ¿Í ¸»¹Ì only ¿¡ ¸ÅÄ¡Çü ÇÕ´Ï´Ù.
ºÎºÐÀûÀ¸·Î °³ÇàÀ» ±¸º°ÇÏ´Â ¸ÅÄ¡ÇüÀÌ ÁöÁ¤µÇ¸é,. (¿Í)°ú ºê·¢Å¶½ÄÀº °³ÇàÀ» ±¸º°ÇÏ´Â ¸ÅÄ¡ÇüÀ» ½Ç½ÃÇÏ°Ô µË´Ï´Ù¸¸,^¹×$´Â º¯°æµÇÁö ¾Ê½À´Ï´Ù.
ºÎºÐÀûÀ¸·Î °³ÇàÀ» ±¸º°ÇÏ´Â ¿ª¸ÅÄ¡°¡ ÁöÁ¤µÇ¸é,^¹×$´Â °³ÇàÀ» ±¸º°ÇÏ´Â ¸ÅÄ¡ÇüÀ» ½Ç½ÃÇÏ°Ô µË´Ï´Ù¸¸,. (¿Í)°ú ºê·¢Å¶½ÄÀº º¯°æµÇÁö ¾Ê½À´Ï´Ù. À̰ÍÀº º°·Î À¯¿ëÇÏÁö´Â ¾Ê½À´Ï´Ù. ´ëμºÀ» À§Çؼ Á¦°øµÇ°í ÀÖ½À´Ï´Ù.
À̹ø ½ÇÇà¿¡¼´Â REÀÇ ±æÀÌ¿¡ °üÇÑ Á¦ÇÑÀº ¾ø½À´Ï´Ù. ±×·¯³ª, À̽ļºÀ» ³ôÀÌ°í ½ÍÀº ÇÁ·Î±×·¥¿¡¼´Â, 256¹ÙÀÌÆ®¸¦ ³Ñ´Â RE¸¦ »ç¿ëÇØ¾ß ÇÏÁö´Â ¾Ê½À´Ï´Ù. POSIX ȣȯÀÇ ½ÇÀå¿¡¼´Â ±×·¯ÇÑ RE¿¡¼´Â È¥¶õÇÒ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù.
AREÀÇ ±â´É °¡¿îµ¥, POSIX ERE¿Í ½ÇÁúÀûÀÎ ºñȣȯ¼ºÀÌ ÀÖ´Â °ÍÀº,\ÀÌ ºê·¢Å¶½ÄÀÇ ¾ÈÂÊ¿¡¼ Ư¼öÇÑ Àǹ̸¦ ÀÒÁö ¾Ê´Â´Ù°í ÇÏ´Â Á¡¸¸ÀÔ´Ï´Ù. ´Ù¸¥ ¸ðµç ARE ±â´ÉÀº, POSIX ERE¿¡¼´Â ºÎÁ¤, ¹ÌÁ¤ÀÇ, ¹ÌÁöÁ¤ È¿°ú°¡ µÇ´Â ±¸¹®À» »ç¿ëÇϰí ÀÖ½À´Ï´Ù. °áÁ¤ÀÚÀÇ***±¸¹® µîÀº BRE ¹× EREÀÇ POSIX ±¸¹®¿¡´Â ¾ø½À´Ï´Ù.
¸¹Àº ARE½ÄÀº Perl·ÎºÎÅÍ Â÷¿ëµÈ °ÍÀÔ´Ï´Ù. ±×·¯³ª, ¸î°³Àΰ¡´Â Á¤¸®µÇ¾î PerlÀÇ È®Àå ¸î °³´Â Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. ÁÖÀÇÇØ¾ß ÇÒ ºñȣȯ¼º¿¡´Â,\b,\B, °³ÇàÀÇ Ãë±ÞÇØ¿¡ °üÇÑ Æ¯¼öÇÑ Á¶Ä¡ÀÇ °áÇÌ, °³ÇàÀ» ±¸º°ÇÏ´Â ¸ÅÄ¡Çü¿¡ ¿µÇâÀ» ÁÖ´Â Á¡¿¡ ´ëÇØ º¸ÃæÇÑ ºê·¢Å¶½ÄÀÇ Ãß°¡, °ýÈ£¿Í ¼±Çà °Ë»ö Á¦¾à³»ÀÇ ÈĹæ ÂüÁ¶¿¡ ´ëÇÑ Á¦ÇÑ, ÃÖÀå/ÃÖ´Ü(ÃÖÃÊ·Î ¸ÅÄ¡Çü ÇÏÁö ¾Ê°Ô) ¸ÅÄ¡ÀÇ ÀǹÌ(semantic)°¡ ÀÖ½À´Ï´Ù.
PostgreSQL¸±¸®½º 7.4 ÀÌÀüÀ¸·Î ÀÎÁöµÈ, ARE¿Í ERE ±¸¹®°£¿¡ Å« ºñȣȯÀÌ 2°³ ÀÖ½À´Ï´Ù.
ARE¿¡¼´Â,\ÀÇ ÈÄ¿¡ ¿µ¼ýÀÚ°¡ °è¼ÓµÇ´Â °ÍÀº À̽ºÄÉÀÌÇÁ ȤÀº ¿¡·¯°¡ µË´Ï´Ù. ÀÌÀüÀÇ ¸±¸®½º¿¡¼´Â, À̰ÍÀº ´ÜÁö, ¿µ¼ýÀÚ¸¦ ±â¼úÇÏ´Â ´Ù¸¥ ¹æ¹ýÀ̾ú½À´Ï´Ù. À̰ÍÀº, Å« ¹®Á¦´Â µÇÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. ÀÌÀüÀÇ ¸±¸®½º¿¡¼´Â ÀÌ·¯ÇÑ ½ÃÄö½º¸¦ ±â¼úÇÒ ÀÌÀ¯°¡ ¾ø±â ¶§¹®ÀÔ´Ï´Ù.
ARE¿¡¼´Â,\Àº[]¾È¿¡¼µµ Ưº°ÇÑ ¹®ÀÚÀÔ´Ï´Ù. µû¶ó¼, ºê·¢Å¶½Ä¿¡¼´Â\À»\\°ú ±â¼úÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
ÀÌ·¯ÇÑ Â÷ÀÌ¿¡ ÀÇÇØ ´ëºÎºÐÀÇ ¾ÖÇø®ÄÉÀ̼ǿ¡¼´Â ¹®Á¦°¡ µÇ´Â °ÍÀº ±×´ÙÁö ¾ø½À´Ï´Ù¸¸, Çʿ信 µû¶ó¼regex_flavor¸¦extended·Î ¼³Á¤ÇÏ´Â °ÍÀ» ȸÇÇÇÒ ¼ö ÀÖ½À´Ï´Ù.
BRE´Â ERE¿Í ¿©·¯¸é¿¡ ÀÖ¾î ´Ù¸¨´Ï´Ù. |,+,? (Àº)´Â º¸Åë ¹®ÀÚÀ̸ç, ±×·¯ÇÑ ±â´É°ú µ¿µîÇÑ °ÍÀº ¾ø½À´Ï´Ù. ¹Ù¿îµåÀÇ ´Ü¶ôÀº\{and\}·ÎµÈ, ÀÚ½ÅÀº º¸Åë ¹®ÀÚ·Î ÇÏ´Â {and}ÀÔ´Ï´Ù. ºÎ½ÄÀ» »óÀÚ·Î Çϱâ À§ÇÑ °ýÈ£´Â\(and\)À̾î,(and)ÀÚ½ÅÀº º¸Åë ¹®ÀÚÀÔ´Ï´Ù. ^(Àº)´Â, REÀÇ ¼±µÎ¿¡ ÀÖ´Â °æ¿ì³ª °ýÈ£³»ÀÇ ºÎ½ÄÀÇ ¼±µÎÀÇ °æ¿ì¸¦ Á¦¿ÜÇØ, º¸Åë ¹®ÀÚÀÔ´Ï´Ù. $(Àº)´Â, REÀÇ ¸»¹Ì¿¡ ÀÖ´Â °æ¿ì³ª °ýÈ£³»ÀÇ ºÎ½ÄÀÇ ¸»¹ÌÀÇ °æ¿ì¸¦ Á¦¿ÜÇØ, º¸Åë ¹®ÀÚÀÔ´Ï´Ù. ¶Ç,*´Â REÀÇ ¼±µÎ¿¡ ÀÖ´Â °æ¿ì³ª °ýÈ£³»ÀÇ ºÎ½ÄÀÇ ¼±µÎ¿¡ ÀÖ´Â °æ¿ì¿¡´Â º¸Åë ¹®ÀÚ°¡ µË´Ï´Ù(±× Àü¿¡^°¡ ºÙ¾î ÀÖÀ» °¡´É¼ºµµ ÀÖ½À´Ï´Ù). ¸¶Áö¸·À¸·Î, 1ÀÚ¸®¼öÀÇ ÈĹæ ÂüÁ¶¸¦ »ç¿ëÇÒ ¼ö°¡ ÀÖ¾î ¶Ç,\<¿Í\>´Â °¢°¢[[:<:]]¿Í[[:>:]]¿Í µ¿ÀǾîÀÔ´Ï´Ù.