9.7. ÆÐÅÏ ¸ÅÄ¡

PostgreSQL¿¡´Â, ÆÐÅÏ ¸ÅÄ¡¸¦ ½Ç½ÃÇϴµ¥ 3°³ÀÇ ´Ù¸¥ ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ÀüÅëÀûÀÎSQLÀÇLIKE¿¬»êÀÚ, À̰ͺ¸´Ù »õ·Î¿îSIMILAR TO¿¬»êÀÚ(SQL:1999·Î Ãß°¡µÇ¾ú½À´Ï´Ù), ¹×POSIX¾ç½ÄÀÇ Á¤±Ô Ç¥ÇöÀÔ´Ï´Ù. ±âº»ÀÇ"ÀÌ ¹®ÀÚ¿­Àº ÀÌ ÆÐÅÏ¿¡ ¸ÅÄ¡ µÉ±î? "¿¬»êÀÚ¸¦ Á¦¿ÜÇϰí, ¸ÅĪÇÏ´Â ¹®ÀÚ¿­À» ÃßÃâÇϰųª ġȯÇϰųª ±×¸®°í ±× ¸ÅÄ¡¿¡ ÀÇÇÑ ¹®ÀÚ¿­ ºÐÇÒÀÇ ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

Tip: »ó±âÀÇ ¼ö¹ý¿¡¼­´Â °Ë»öÇÒ ¼ö ¾ø´Â °Í °°Àº ÆÐÅÏ ¸ÅĪÀÌ ÇÊ¿äÇÑ °æ¿ì´Â, Perl ȤÀº Tcl·Î À¯Àú Á¤ÀÇ ÇÔ¼ö¸¦ ÀÛ¼ºÇÏ´Â °ÍÀ» °ËÅäÇØ ÁÖ¼¼¿ä.

9.7.1. 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°íÀ¯ÀÇ °ÍÀÔ´Ï´Ù.

9.7.2. 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¸¯Å͵µ Áö¿ø ÇÕ´Ï´Ù.

¹Ù¿îµå ¹Ýº¹(? ¹×{...})(Àº)´Â, 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

9.7.3. POSIXÁ¤±Ô Ç¥Çö

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¿¡ ÀÇÇØ ±â¼úµÈ ÆÐŰÁö¸¦ »ç¿ëÇØ ½ÇÇàµÇ°í ÀÖ½À´Ï´Ù. ÀÌÇÏ¿¡ ¼³¸íÇÏ´Â Á¤±Ô Ç¥ÇöÀÇ ¸¹Àº ºÎºÐÀº, ¸Þ´º¾ó Ç׸ñÀ¸·ÎºÎÅÍ ¼¼¼¼ÇÑ ºÎºÐÀ» º¹»çÇÑ °ÍÀÔ´Ï´Ù.

9.7.3.1. Regular Expression Details

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¸¦ ÂüÁ¶)¸¦ Æ÷ÇÔÇÒ ¼ö ¾ø½À´Ï´Ù. ¶Ç, ±× ÁßÀÇ ¸ðµç °ýÈ£´Â ĸÃĵÇÁö ¾ÊÀº °ÍÀ¸·Î °£Áֵ˴ϴÙ.

9.7.3.2. ºê·¢Å¶½Ä

ºê·¢Å¶½ÄÀ̶õ,[]¾ÈÀÇ ¹®ÀÚÀÇ ¸®½ºÆ®ÀÔ´Ï´Ù. Åë»ó À̰ÍÀº ±× ¸®½ºÆ®³»ÀÇ ÀÓÀÇÀÇ ´ÜÀÏ ¹®ÀÚ¿¡ ¸ÅÄ¡Çü ÇÕ´Ï´Ù(±×·¯³ª, ÀÌÈĸ¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä). ¸®½ºÆ®°¡^·ÎºÎÅÍ ½ÃÀ۵Ǵ °æ¿ì, ±× ¸®½ºÆ®ÀÇ ³ª¸ÓÁö¿¡´Â ¾ø´Â ÀÓÀÇÀÇ ´ÜÀÏ ¹®ÀÚ¿¡ ¸ÅÄ¡Çü ÇÕ´Ï´Ù. ¸®½ºÆ®³»ÀÇ 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¿ÍÀÇ È£È¯¼ºÀº ÀÖ½À´Ï´Ù¸¸, ±×°÷¿¡¼­´Â Á¤ÀǵǾî ÀÖÁö ¾ÊÀº ½ÄÀÔ´Ï´Ù. ±×·¯¹Ç·Î, Ÿ½Ã½ºÅÛ¿¡ À̽ļº ÀÖ´Â ¼ÒÇÁÆ®¿þ¾î¿¡¼­ÀÇ »ç¿ë¿¡´Â ÁÖÀǰ¡ ÇÊ¿äÇÕ´Ï´Ù. Åë»ó ÈļúÀÇ Á¦¾à À̽ºÄÉÀÌÇÁ°¡ ÀÚÁÖ »ç¿ëµË´Ï´Ù(À̰͵µ Ç¥ÁØÀÌ ¾Æ´Õ´Ï´Ù¸¸, ÀÔ·ÂÇϱⰡ ´õ ½±½À´Ï´Ù).

9.7.3.3. Á¤±Ô Ç¥Çö À̽ºÄÉÀÌÇÁ

À̽ºÄÉÀÌÇÁ¶õ,\À¸·Î ½ÃÀÛÇϰí, ¿µ¼ýÀÚ°¡ ±× ÈÄ¿¡ À̾îÁö´Â Ư¼öÇÑ ½ÃÄö½ºÀÔ´Ï´Ù. À̽ºÄÉÀÌÇÁ¿¡´Â, ¹®ÀÚ ¿£Æ®¸®, Ŭ·¡½º »ý·«, Á¦¾à À̽ºÄÉÀÌÇÁ, ÈĹæ ÂüÁ¶¶ó°í ÇÑ ¿©·¯°¡Áö º¯Á¾ÀÌ ÀÖ½À´Ï´Ù. \ÀÇ ÈÄ¿¡ ¿µ¼ýÀÚ°¡ °è¼ÓµÇÁö¸¸, À¯È¿ÇÑ À̽ºÄÉÀÌÇÁ¸¦ ±¸¼ºÇÏÁö ¾Ê´Â ÁÙÀº 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 Áø¼ö·Î¼­ ÇØ¼®µË´Ï´Ù.

9.7.3.4. Á¤±Ô Ç¥Çö ¸ÞŸ±¸¹®

»ó¼úÀÇ ÁÖ±¸¹® ¿Ü¿¡, Ư¼öÇÑ Çü½ÄÀ̳ª Àâ´ÙÇÑ ±¸¹®ÀûÀÎ ±â´ÉÀÌ »ç¿ë °¡´ÉÇÕ´Ï´Ù.

Åë»ó, »ç¿ëµÇ´Â 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´Â ¾Æ´Ï°í ¸®ÅÍ·²·Î¼­ ´Ù·ç¾îÁö´Â °æ¿ì, ÀÌ·¯ÇÑ ¸ÞŸ ±¸¹® È®ÀåÀº »ç¿ë ÇÒ ¼ö ¾ø½À´Ï´Ù .

9.7.3.5. Á¤±Ô Ç¥Çö ¸ÅĪ ±ÔÄ¢

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 ¿¡ ¸ÅÄ¡Çü ÇÕ´Ï´Ù.

ºÎºÐÀûÀ¸·Î °³ÇàÀ» ±¸º°ÇÏ´Â ¸ÅÄ¡ÇüÀÌ ÁöÁ¤µÇ¸é,. (¿Í)°ú ºê·¢Å¶½ÄÀº °³ÇàÀ» ±¸º°ÇÏ´Â ¸ÅÄ¡ÇüÀ» ½Ç½ÃÇÏ°Ô µË´Ï´Ù¸¸,^¹×$´Â º¯°æµÇÁö ¾Ê½À´Ï´Ù.

ºÎºÐÀûÀ¸·Î °³ÇàÀ» ±¸º°ÇÏ´Â ¿ª¸ÅÄ¡°¡ ÁöÁ¤µÇ¸é,^¹×$´Â °³ÇàÀ» ±¸º°ÇÏ´Â ¸ÅÄ¡ÇüÀ» ½Ç½ÃÇÏ°Ô µË´Ï´Ù¸¸,. (¿Í)°ú ºê·¢Å¶½ÄÀº º¯°æµÇÁö ¾Ê½À´Ï´Ù. À̰ÍÀº º°·Î À¯¿ëÇÏÁö´Â ¾Ê½À´Ï´Ù. ´ëμºÀ» À§Çؼ­ Á¦°øµÇ°í ÀÖ½À´Ï´Ù.

9.7.3.6. Á¦ÇѰú ȣȯ¼º

À̹ø ½ÇÇà¿¡¼­´Â 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·Î ¼³Á¤ÇÏ´Â °ÍÀ» ȸÇÇÇÒ ¼ö ÀÖ½À´Ï´Ù.

9.7.3.7. ±âº» Á¤±Ô Ç¥Çö

BRE´Â ERE¿Í ¿©·¯¸é¿¡ ÀÖ¾î ´Ù¸¨´Ï´Ù. |,+,? (Àº)´Â º¸Åë ¹®ÀÚÀ̸ç, ±×·¯ÇÑ ±â´É°ú µ¿µîÇÑ °ÍÀº ¾ø½À´Ï´Ù. ¹Ù¿îµåÀÇ ´Ü¶ôÀº\{and\}·ÎµÈ, ÀÚ½ÅÀº º¸Åë ¹®ÀÚ·Î ÇÏ´Â {and}ÀÔ´Ï´Ù. ºÎ½ÄÀ» »óÀÚ·Î Çϱâ À§ÇÑ °ýÈ£´Â\(and\)À̾î,(and)ÀÚ½ÅÀº º¸Åë ¹®ÀÚÀÔ´Ï´Ù. ^(Àº)´Â, REÀÇ ¼±µÎ¿¡ ÀÖ´Â °æ¿ì³ª °ýÈ£³»ÀÇ ºÎ½ÄÀÇ ¼±µÎÀÇ °æ¿ì¸¦ Á¦¿ÜÇØ, º¸Åë ¹®ÀÚÀÔ´Ï´Ù. $(Àº)´Â, REÀÇ ¸»¹Ì¿¡ ÀÖ´Â °æ¿ì³ª °ýÈ£³»ÀÇ ºÎ½ÄÀÇ ¸»¹ÌÀÇ °æ¿ì¸¦ Á¦¿ÜÇØ, º¸Åë ¹®ÀÚÀÔ´Ï´Ù. ¶Ç,*´Â REÀÇ ¼±µÎ¿¡ ÀÖ´Â °æ¿ì³ª °ýÈ£³»ÀÇ ºÎ½ÄÀÇ ¼±µÎ¿¡ ÀÖ´Â °æ¿ì¿¡´Â º¸Åë ¹®ÀÚ°¡ µË´Ï´Ù(±× Àü¿¡^°¡ ºÙ¾î ÀÖÀ» °¡´É¼ºµµ ÀÖ½À´Ï´Ù). ¸¶Áö¸·À¸·Î, 1ÀÚ¸®¼öÀÇ ÈĹæ ÂüÁ¶¸¦ »ç¿ëÇÒ ¼ö°¡ ÀÖ¾î ¶Ç,\<¿Í\>´Â °¢°¢[[:<:]]¿Í[[:>:]]¿Í µ¿ÀǾîÀÔ´Ï´Ù.