|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
java.lang.Object | +--java.util.regex.Pattern
ÄÄÆÄÀÏ ³¡³ Á¤±Ô Ç¥ÇöÀÔ´Ï´Ù.
Á¤±Ô Ç¥ÇöÀº ij¸¯ÅÍ ¶óÀÎÀ¸·Î¼ ÁöÁ¤ÇØ, ÀÌ Å¬·¡½ºÀÇ ÀνºÅϽº¿¡ ÄÄÆÄÀÏ ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. »ý¼ºµÈ ÆÐÅÏÀº Matcher
¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇϱâ À§Çؼ »ç¿ëµË´Ï´Ù. ÀÌ ¿ÀºêÁ§Æ®´Â ÀÓÀÇÀÇ
°÷ÀÇ Á¤±Ô Ç¥ÇöÀ» ¼º³É ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼º³ÉÀ» ½ÇÇàÇßÀ» ¶§ »óÅ´ ¸ðµÎ Á¤±Ô Ç¥Çö ¿£Áø¿¡ ÀúÀåµË´Ï´Ù. ÀÌ ¶§¹®¿¡, º¹¼öÀÇ Á¤±Ô Ç¥Çö ¿£ÁøÀÌ °°Àº ÆÐÅÏÀ» °øÀ¯ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ij¸¯ÅÍ ¼øÂ÷ ¼ø¼
Ç¥ÁØÀûÀÎ calling sequence´Â ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù.
Pattern p = Pattern.compile
("a*b"); Matcher m = p.matcher
("aaaaab"); boolean b = m.matches
();
ÀÌ Å¬·¡½º¿¡ Á¤ÀÇÇÑ matches
¸Þ¼Òµå¸¦ »ç¿ëÇϸé, Á¤±Ô Ç¥ÇöÀº ÇÑ ¹ø »ç¿ëÇÏ´Â °Í¸¸À¸·Î ³¡³³´Ï´Ù. ÀÌ ¸Þ¼Òµå¸¦ 1 ȸ È£ÃâÇÏ´Â °Í¸¸À¸·Î, Ç¥ÇöÀÌ ÄÄÆÄÀÏ µÇ¾î ÀÔ·Â ¼øÂ÷ ¼ø¼¿Í ¼º³É µË´Ï´Ù. ´ÙÀ½ÀÇ ¹®ÀåÀº »ó±âÀÇ 3 °³ÀÇ ¹®Àå°ú µî°¡ÀÔ´Ï´Ù.
´Ù¸¸, ¼º³ÉÀ» ¹Ýº¹ÇÏ´Â °æ¿ì´Â ÄÄÆÄÀÏ ³¡³ ÆÐÅÏÀ» ÀçÀÌ¿ëÇÒ ¼ö ¾ø±â ¶§¹®¿¡, È¿À²ÀÌ ÀúÇÏÇÕ´Ï´Ù.boolean b = Pattern.matches("a*b", "aaaaab");
ÀÌ Å¬·¡½ºÀÇ ÀνºÅϽº´Â ºÒº¯À̱â (À§ÇØ)¶§¹®¿¡, º¹¼öÀÇ thread·Î µ¿½Ã¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Matcher
Ŭ·¡½ºÀÇ ÀνºÅϽº´Â º¹¼ö thread¿¡¼ÀÇ µ¿½Ã »ç¿ë¿¡ ´ëÀÀÇϰí ÀÖ½À´Ï´Ù.
Á¤±Ô Ç¥Çö ±¸¹®ÀÇ ¿ä¾à
±¸¹® | ¸ÅÄ¡ ´ë»ó |
---|---|
ij¸¯ÅÍ | |
x | ij¸¯ÅÍ x |
\\ | backslash ij¸¯ÅÍ |
\0n | 8 ÁøÄ¡ 0n ¸¦ °¡Áö´Â ij¸¯ÅÍ (0 <= n <= 7) |
\0nn | 8 ÁøÄ¡ 0nn ¸¦ °¡Áö´Â ij¸¯ÅÍ (0 <= n <= 7) |
\0mnn | 8 ÁøÄ¡ 0mnn ¸¦ °¡Áö´Â ij¸¯ÅÍ (0 <= m <= 3, 0 <= n <= 7) |
\xhh | 16 ÁøÄ¡ 0xhh ¸¦ °¡Áö´Â ij¸¯ÅÍ |
\uhhhh | 16 ÁøÄ¡ 0xhhhh ¸¦ °¡Áö´Â ij¸¯ÅÍ |
\t | ÅÇ Ä³¸¯ÅÍ ('\u0009') |
\n | °³Çà ij¸¯ÅÍ ('\u000A') |
\r | ¿Õº¹´ë ¸®ÅÏ Ä³¸¯ÅÍ ('\u000D') |
\f | ¿ëÁö º¸³» ij¸¯ÅÍ ('\u000C') |
\a | °æ°í (º§) ij¸¯ÅÍ ('\u0007') |
\e | À̽ºÄÉÀÌÇÁ ij¸¯ÅÍ ('\u001B') |
\cx | x ¿¡ ´ëÀÀÇÏ´Â Á¦¾î ij¸¯ÅÍ |
ij¸¯ÅÍ Å¬·¡½º | |
[abc] | a,b, ¶Ç´Â c (´Ü¼ø Ŭ·¡½º) |
[^abc] | a,b,c ÀÌ¿ÜÀÇ Ä³¸¯ÅÍ (ºÎÁ¤) |
[a-zA-Z] | a ~ z ¶Ç´Â A ~ Z (¹üÀ§) |
[a-d[m-p]] | a ~ d, ¶Ç´Â m ~ p: [a-dm-p] (°áÇÕ) |
[a-z&&[def]] | d,e,f (±³Â÷) |
[a-z&&[^bc]] | b ¿Í c ¸¦ Á¦¿ÜÇÏ´Â a ~ z: [ad-z] (°¨»ê) |
[a-z&&[^m-p]] | m ~ p ¸¦ Á¦¿ÜÇÏ´Â a ~ z: [a-lq-z] (°¨»ê) |
Á¤ÀÇ ³¡³ ij¸¯ÅÍ Å¬·¡½º | |
. | ÀÓÀÇÀÇ Ä³¸¯ÅÍ (ÁÙ ³¡ ±âÈ£¿Í ¼º³É ÇÏ´Â °æ¿ìµµ ÀÖ´Ù) |
\d | ¼ýÀÚ: [0-9] |
\D | ¼ýÀÚ ÀÌ¿Ü: [^0-9] |
\s | °ø¹é ij¸¯ÅÍ: [ \t\n\x0B\f\r] |
\S | ºñ°ø¹é ij¸¯ÅÍ: [^\s] |
\w | ´Ü¾î ±¸¼º ij¸¯ÅÍ: [a-zA-Z_0-9] |
\W | ºñ´Ü¾î ij¸¯ÅÍ: [^\w] |
POSIX ij¸¯ÅÍ Å¬·¡½º (US-ASCII ¸¶¼Å) | |
\p{Lower} | ¼Ò¹®ÀÚÀÇ ¿µ¹®ÀÚ: [a-z] |
\p{Upper} | ´ë¹®ÀÚÀÇ ¿µ¹®ÀÚ: [A-Z] |
\p{ASCII} | ¸ðµç ASCII ij¸¯ÅÍ: [\x00-\x7F] |
\p{Alpha} | ¿µ¹®ÀÚ: [\p{Lower}\p{Upper}] |
\p{Digit} | 10 Áø¼öÀÚ: [0-9] |
\p{Alnum} | ¿µ¼ýÀÚ: [\p{Alpha}\p{Digit}] |
\p{Punct} | ±¸µÎÁ¡ ij¸¯ÅÍ: ! "#$%&'()*+,-. /:;<=>? @[\]^_`{|}~ ÀÇ ¾ðÁ¨°¡ |
\p{Graph} | Ç¥½ÃÇÒ ¼ö Àִ ij¸¯ÅÍ: [\p{Alnum}\p{Punct}] |
\p{Print} | ÇÁ¸°Æ® °¡´É ij¸¯ÅÍ: [\p{Graph}] |
\p{Blank} | °ø¹é ¶Ç´Â ÅÇ: [ \t] |
\p{Cntrl} | Á¦¾î ij¸¯ÅÍ: [\x00-\x1F\x7F] |
\p{XDigit} | 16 Áø¼öÀÚ: [0-9a-fA-F] |
\p{Space} | °ø¹é ij¸¯ÅÍ: [ \t\n\x0B\f\r] |
Unicode ºí·Ï°ú Ä«Å×°í¸®ÀÇ Å¬·¡½º | |
\p{InGreek} | Èñ¶ø¾î ºí·ÏÀÇ Ä³¸¯ÅÍ (´Ü¼øºí·Ï) |
\p{Lu} | ´ë¹®ÀÚ (´Ü¼øÄ«Å×°í¸®) |
\p{Sc} | ÅëÈ ±âÈ£ |
\P{InGreek} | Èñ¶ø¾î ºí·Ï ÀÌ¿ÜÀÇ Ä³¸¯ÅÍ (ºÎÁ¤) |
[\p{L}&&[^\p{Lu}]] | ´ë¹®ÀÚ ÀÌ¿ÜÀÇ Ä³¸¯ÅÍ (°¨»ê) |
°æ°è Á¤±Ô Ç¥Çö ¿£Áø | |
^ | ÇàÀÇ ¼±µÎ |
$ | ÇàÀÇ ¸»¹Ì |
\b | ´Ü¾î °æ°è |
\B | ºñ´Ü¾î °æ°è |
\A | ÀÔ·ÂÀÇ ¼±µÎ |
\G | ÀüȸÀÇ ¼º³ÉÀÇ ¸»¹Ì |
\Z | ¸¶Áö¸·ÁÙ ³¡ ±âÈ£°¡ ÀÖ´Â °æ¿ì´Â ±×°ÍÀ» Á¦¿ÜÇÑ ÀÔ·ÂÀÇ ¸»¹Ì |
\z | ÀÔ·ÂÀÇ ¸»¹Ì |
ÃÖÀå ÀÏÄ¡ ¼ö·®ÀÚ | |
X? | X, 1 ȸ ¶Ç´Â 0 ȸ |
X* | X, 0 ȸ ÀÌ»ó |
X+ | X, 1 ȸ ÀÌ»ó |
X{n} | X,n ȸ |
X(n,} | X,n ȸÀÌ»ó |
X{n,m} | X,n ȸÀÌ»ó,m ȸÀÌÇÏ |
ÃÖ´Ü ÀÏÄ¡ ¼ö·®ÀÚ | |
X?? | X, 1 ȸ ¶Ç´Â 0 ȸ |
X*? | X, 0 ȸ ÀÌ»ó |
X+? | X, 1 ȸ ÀÌ»ó |
X{n}? | X,n ȸ |
X(n,}? | X,n ȸÀÌ»ó |
X{n,m}? | X,n ȸÀÌ»ó,m ȸÀÌÇÏ |
Ž¿åÀÎ ¼ö·®ÀÚ | |
X? + | X, 1 ¶Ç´Â 0 ȸ |
X*+ | X, 0 ȸ ÀÌ»ó |
X++ | X, 1 ȸ ÀÌ»ó |
X{n}+ | X,n ȸ |
X(n,}+ | X,n ȸÀÌ»ó |
X{n,m}+ | X,n ȸÀÌ»ó,m ȸÀÌÇÏ |
³í¸® ¿¬»êÀÚ | |
XY | X ÀÇ Á÷ÈÄ¿¡ Y |
X|Y | X ¶Ç´Â Y |
(X) | X,Àü¹æ ÂüÁ¶¸¦ ½Ç½ÃÇÏ´Â Á¤±Ô Ç¥Çö ±×·ì |
Àü¹æ ÂüÁ¶ | |
\n | ¼º³É ÇÑ n ¹øÂ°ÀÇÀü¹æ ÂüÁ¶¸¦ ½Ç½ÃÇÏ´Â Á¤±Ô Ç¥Çö ±×·ì |
Àοë | |
\ | Á¤±Ô Ç¥ÇöÀº ¾Æ´ÏÁö¸¸, ´ÙÀ½ÀÇ Ä³¸¯Å͸¦ À̽ºÄÉÀÌÇÁ ÇÑ´Ù |
\Q | Á¤±Ô Ç¥ÇöÀº ¾Æ´ÏÁö¸¸,\E ±îÁöÀÇ ¸ðµç ij¸¯Å͸¦ À̽ºÄÉÀÌÇÁ ÇÑ´Ù |
\E | Á¤±Ô Ç¥ÇöÀº ¾Æ´ÏÁö¸¸,\Q ·Î °³½ÃµÈ ÀοëÀ» À̽ºÄÉÀÌÇÁ ÇÑ´Ù |
Ư¼öÇÑ ±¸¹® (Àü¹æ ÂüÁ¶¸¦ ½Ç½ÃÇÏÁö ¾Ê´Â´Ù) | |
(? :X) | X,Àü¹æ ÂüÁ¶¸¦ ½Ç½ÃÇÏÁö ¾Ê´Â Á¤±Ô Ç¥Çö ±×·ì |
(? idmsux-idmsux) | Á¤±Ô Ç¥ÇöÀº ¾Æ´ÏÁö¸¸, ¸ÅÄ¡ Ç÷¡±×ÀÇ ¿Â/¿ÀÇÁ¸¦ ¹Ù²Û´Ù |
(? idmsux-idmsux:X) | X, ÁöÁ¤µÈ Ç÷¡±×¸¦ ¿Â/¿ÀÇÁ·Î ÇÑÀü¹æ ÂüÁ¶¸¦ ½Ç½ÃÇÏÁö ¾Ê´Â Á¤±Ô Ç¥Çö ±×·ì |
(? =X) | X, ÆøÁ¦·ÎÀÇ ±àÁ¤ ¿¹Ãø |
(?!X) | X, ÆøÁ¦·ÎÀÇ ºÎÁ¤ ¿¹Ãø |
(? <=X) | X, ÆøÁ¦·ÎÀÇ ±àÁ¤ ÈÄ Àбâ |
(? <! X) | X, ÆøÁ¦·ÎÀÇ ºÎÁ¤ ÈÄ Àбâ |
(? >X) | X, µ¶¸³ÇÑÀü¹æ ÂüÁ¶¸¦ ½Ç½ÃÇÏÁö ¾Ê´Â Á¤±Ô Ç¥Çö ±×·ì |
backslash ij¸¯ÅÍ ('\')´Â »ó±âÀÇ °Ñ(Ç¥)¿¡ Á¤Àǵǰí ÀÖ´Â ±¸¹®À» À̽ºÄÉÀÌÇÁ ÇÕ´Ï´Ù. ¶Ç, ÁöÁ¤ÇÏÁö ¾Ê¾Ò´ø °æ¿ì´Â À̽ºÄÉÀÌÇÁµÇ¾î ÀÖÁö ¾Ê´Ù°í ÇØ¼®µÇ´Â ij¸¯ÅÍ ¶óÀÎÀ» ÀοëÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, Á¤±Ô Ç¥Çö \\ Àº 1 °³ÀÇ backslash¿Í ¼º³É ÇØ,\{ ´Â ¿ÞÂÊ °ýÈ£¿Í ¼º³É ÇÕ´Ï´Ù.
¿µ¹®ÀÚÀÇ Àü¿¡ backslash¸¦ »ç¿ëÇßÀ» ¶§¿¡, ±× ¿µ¹®ÀÚ°¡ À̽ºÄÉÀÌÇÁ ±¸¹®ÀÌ ¾Æ´Ñ °æ¿ì´Â ¿¡·¯°¡ µË´Ï´Ù. ÀÌ·¯ÇÑ ÆÐÅÏÀº Á¤±Ô Ç¥Çö ¾ð¾îÀÇ ÇâÈÄÀÇ È®Àå¿¡ ¿¹¾àµÇ°í ÀÖ½À´Ï´Ù. ¿µ¹®ÀÚ ÀÌ¿ÜÀÇ Ä³¸¯ÅÍÀÇ °æ¿ì´Â ±× ij¸¯ÅͰ¡ À̽ºÄÉÀÌÇÁ ±¸¹®¿¡ Æ÷ÇÔµÉÁö ¾î¶³Áö¿¡ °ü°è¾øÀÌ, backslash¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Java ¾ð¾î »ç¾ç¿¡¼´Â Java ¿ø½Ã ÄÚµåÀÇ Ä³¸¯ÅÍ ¶óÀÎ ¸®ÅÍ·²¿¡ Æ÷ÇԵǴ backslash´Â Unicode À̽ºÄÉÀÌÇÁµîÀÇij¸¯ÅÍ À̽ºÄÉÀÌÇÁ·Î¼ À¯È¿ÇÏ´Ù¶ó°í ÇØ¼®µË´Ï´Ù. ÀÌ ¶§¹®¿¡, backslash°¡ Java ¹ÙÀÌÆ® ÄÚµå ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ ÇØ¼®µÇÁö ¾Ê°Ô ÇÏ·Á¸é , Á¤±Ô Ç¥ÇöÀ» ³ªÅ¸³»´Â ij¸¯ÅÍ ¶óÀÎ ¸®ÅÍ·²³»¿¡¼ backslash¸¦ 2 °³ °è¼ÓÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ij¸¯ÅÍ ¶óÀÎ ¸®ÅÍ·² "\b" ´Â Á¤±Ô Ç¥ÇöÀ̶ó°í ÇØ¼®µÇ¸é(ÀÚ), ¹é ½ºÆäÀ̽º 1 ij¸¯ÅÍ¿Í ¼º³É µË´Ï´Ù. ±×·¯³ª,"\\b" ´Â ´Ü¾î °æ°è¿Í ¼º³É µË´Ï´Ù. ¶Ç, ij¸¯ÅÍ ¶óÀÎ ¸®ÅÍ·² "\(hello\)" Àº ºÎ´çÇÏ°Ô µÇ¾î, ÄÄÆÄÀϽà ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù. ij¸¯ÅÍ ¶óÀÎ (hello) °ú ¼º³É µÇ·Á¸é , ij¸¯ÅÍ ¶óÀÎ ¸®ÅÍ·² "\\(hello\\)" À» »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
¡¸ÁÙ ³¡ ±âÈ£¡¹¶õ, ÀԷ ij¸¯ÅÍ ¼øÂ÷ ¼ø¼ÀÇ ÇàÀÇ ¸»¹Ì¸¦ ÁöÁ¤ÇÒ °æ¿ì¿¡ »ç¿ëÇÏ´Â 1 ij¸¯ÅÍ ¶Ç´Â 2 ij¸¯ÅÍÀÇ Ä³¸¯ÅÍ ¼øÂ÷ ¼ø¼ÀÔ´Ï´Ù. ´ÙÀ½ÀÇ Ä³¸¯ÅͰ¡ ÁÙ ³¡ ±âÈ£·Î¼ Àνĵ˴ϴÙ.
Á¤±Ô Ç¥Çö . (Àº)´Â Àü¹æ ÂüÁ¶¸¦ ½Ç½ÃÇÏ´Â Á¤±Ô Ç¥Çö ±×·ì¿¡´Â ¿ÞÂÊ¿¡¼ ¿ìÃøÇâ¿¡ ¿ÞÂÊȯ°ýÈ£¸¦ ¼¼´Â °Í¿¡ ÀÇÇØ, ¹øÈ£¸¦ ºÙÀÏ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, Ç¥Çö ((A)(B(C))) ´Â ´ÙÀ½ÀÇ 4 °³ÀÇ ±×·ìÀ¸·Î ºÐ·ùµË´Ï´Ù. ±×·ì 0 Àº Ç×»ó Ç¥Çö Àüü¸¦ ³ªÅ¸³À´Ï´Ù.
Àü¹æ ÂüÁ¶¸¦ ½Ç½ÃÇÏ´Â Á¤±Ô Ç¥Çö ±×·ìÀÌ ÀÌ¿Í °°ÀÌ ºÐ·ùµÇ°í ³ª¼, ÀÔ·Â ¼øÂ÷ ¼ø¼ÀÇ °¢ ºÎºÐ ¼øÂ÷ ¼ø¼°¡ ÀÌ·¯ÇÑ ±×·ì°ú ¼º³É µÇ¾î ¼º³É ÇÒ ¶§¸¶´Ù ºÎºÐ ¼øÂ÷ ¼ø¼°¡ º¸Á¸µË´Ï´Ù. Á¤±Ô Ç¥Çö ±×·ìÀÇ ºÎºÐ ¼øÂ÷ ¼ø¼´Â Àü¹æ ÂüÁ¶·Î¼ Ç¥Çö³»¿¡¼ ³ªÁß¿¡ »ç¿ëÇÒ ¼ö ÀÖ°Ú½À´Ï´Ù. ¶Ç, ¸ÅÄ¡ Á¶ÀÛÀÌ ¿Ï·áÇϸé(ÀÚ), Á¤±Ô Ç¥Çö ¿£ÁøÀ¸·ÎºÎÅÍ ²¨³¾ ¼öµµ ÀÖ½À´Ï´Ù.
±×·ì°ú ÀÔ·Â ¼øÂ÷ ¼ø¼°¡ ¼º³É µÇ¸é(ÀÚ), ±× ±×·ì°ú ¸¶Áö¸·¿¡ ¼º³É ÇÑ ºÎºÐ ¼øÂ÷ ¼ø¼°¡ Ç×»ó Àü¹æ ÂüÁ¶µË´Ï´Ù. ¼ö·®ÀÚ¸¦ ÁöÁ¤ÇßÀ» °æ¿ì´Â ±×·ìÀÌ Çѹø ´õ Æò°¡µË´Ï´Ù. 2 ¹øÂ°ÀÇ Æò°¡°¡ ½ÇÆÐÇßÀ» °æ¿ì¿¡¼µµ, ±× Àü¿¡ Àü¹æ ÂüÁ¶µÈ °ªÀÌ ÀÖ´Â °æ¿ì´Â ±× °ªÀÌ º¸°ü À¯ÁöµË´Ï´Ù. ¿¹¸¦ µé¾î, ij¸¯ÅÍ ¶óÀÎ "aba" ¸¦ Ç¥Çö (a(b)? )+ (¿Í)°ú ¼º³É ÇßÀ» °æ¿ì´Â ±×·ì 2 ·Î ¼³Á¤µÈ "b" °¡ º¸°ü À¯ÁöµË´Ï´Ù. Àü¹æ ÂüÁ¶µÈ ¸ðµç ÀÔ·ÂÀº °¢ ¸ÅÄ¡°¡ ½ÃÀ۵DZâ Àü¿¡ ÆÄ±âµË´Ï´Ù.
(? ±×¸®°í ½ÃÀ۵Ǵ ±×·ìÀº ¼ø¼öÇÑ ¡¸Àü¹æ ÂüÁ¶µÇÁö ¾Ê´Â Á¤±Ô Ç¥Çö¡¹±×·ì¿¡¼, ÅØ½ºÆ®¸¦ Àü¹æ ÂüÁ¶ÇÏÁö ¾Ê°í ±×·ì Àüü¿¡ Ä«¿îÆ® µÇÁö ¾Ê½À´Ï´Ù.
ÀÌ Å¬·¡½º´Â Unicode Technical Report #18: Unicode Regular Expression Guidelines ¿¡ ÁذÅÇϰí ÀÖ¾î, ±× Á¦ 2 ·¹º§À» ±¸ÇöÇϰí ÀÖ½À´Ï´Ù. ´Ù¸¸, ±¸¹®ÀÌ Á¶±Ý ´Ù¸¨´Ï´Ù.
Java ¿ø½Ã Äڵ忡¼´Â \u2014 µîÀÇ Unicode escape sequence´Â ¡¸Java ¾ð¾î »ç¾ç¡¹ÀÇ ? 3.3 ¿¡ ±Ù°ÅÇØ 󸮵˴ϴÙ. ÀÌ·¯ÇÑ escape sequence´Â Á¤±Ô Ç¥Çö ÆÄ¼¿¡ ÀÇÇØ Á÷Á¢ ±¸ÇöµÇ±â (À§ÇØ)¶§¹®¿¡, ÆÄÀÏ ¶Ç´Â Űº¸µå·ÎºÎÅÍ ÀоîµéÀΠǥÇö Áß(¾È)¿¡¼µµ Unicode À̽ºÄÉÀÌÇÁ¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Áï, ij¸¯ÅÍ ¶óÀÎ "\u2014" ¿Í "\\u2014" ´Â µî°¡°¡ ¾Æ´Õ´Ï´Ù¸¸, °°Àº ÆÐÅÏ¿¡ ÄÄÆÄÀÏ µÇ¾î 16 ÁøÄ¡ 0x2014 ÀÇ Ä³¸¯ÅÍ¿Í ¼º³É ÇÕ´Ï´Ù.
Unicode ºí·Ï ¹× Ä«Å×°í¸®´Â Perl ¿Í °°°Ô \p ¹× \P ±¸¹®À¸·Î ±â¼úÇÕ´Ï´Ù. ÀԷ¿¡ ÇÁ·ÎÆÛƼ prop °¡ Æ÷ÇԵǴ °æ¿ì,\p{prop} ´Â ¼º³É ÇÕ´Ï´Ù¸¸, \P{{prop} ´Â ¼º³É ÇÏÁö ¾Ê½À´Ï´Ù. ºí·Ï¿¡´Â InMongolian ¿Í °°ÀÌ, Á¢µÎ»ç In ¸¦ ÁöÁ¤ÇÕ´Ï´Ù. Ä«Å×°í¸®¿¡´Â Á¢µÎ»ç Is ¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. \p{L} ¿Í \p{IsL} ´Â Unicode ij¸¯ÅÍÀÇ Ä«Å×°í¸®¸¦ ³ªÅ¸³À´Ï´Ù. ºí·Ï°ú Ä«Å×°í¸®´Â ij¸¯ÅÍ Å¬·¡½ºÀÇ ³»ºÎ ¹× ¿ÜºÎÀÇ ¾î´À ÂÊ¿¡µµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
¼Æ÷Æ®µÇ°í ÀÖ´Â Unicode ºí·Ï°ú Ä«Å×°í¸®´Â ¡¸The Unicode Standard, Version 3. 0¡¹¿¡ ±âÀçµÇ¾î ÀÖ½À´Ï´Ù. ºí·Ï¸íÀº Á¦ 14 Àå°úUnicode Character Database ÀÇ ÆÄÀÏ Blocks-3.txt ¿¡ Á¤Àǵǰí ÀÖ½À´Ï´Ù. ´Ù¸¸, °ø¹éÀº »èÁ¦ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î,"Basic Latin" ´Â "BasicLatin" °¡ µË´Ï´Ù. Ä«Å×°í¸®¸í¿¡ ´ëÇØ¼´Â Unicode Ç¥ÁØ (p. 88)ÀÇ Ç¥ 4 ~ 5 ¿¡ ±ÔÁذú Á¤º¸°¡ Á¤Àǵǰí ÀÖ½À´Ï´Ù.
ÀÌ Å¬·¡½º¿¡¼ ¼Æ÷Æ®µÇ¾î ÀÖÁö ¾ÊÀº Perl ±¸¹® Á¶°ÇºÎ ±¸¹® (? {X}) ¹× (? (Á¶°Ç)X|Y) ³»ÀåÇϱâ ÄÚµå ±¸¹® (? {ÄÚµå}) ¹× (??{ÄÚµå}) ³»ÀåÇϱâ ÄÚ¸àÆ® ±¸¹® (? #ÄÚ¸àÆ®) ÇÁ¸®ÇÁ·Î¼¼½º ¿¬»ê \l,\u,\L,\U ÀÌ Å¬·¡½º¿¡¼ ¼Æ÷Æ®µÇ°í ÀÖÁö¸¸, Perl ·Î ¼Æ÷Æ®µÇ¾î ÀÖÁö ¾ÊÀº ±¸¹® Ž¿åÀÎ ¼ö·®ÀÚ. °¡´ÉÇÑ ÇÑ ±ä ij¸¯ÅÍ ¶óÀΰú ¼º³É ÇÕ´Ï´Ù. Å𺸠(¹é Æ®·°) Çϸé Á¤±Ô Ç¥Çö ÀüüÀÇ ¼º³ÉÀÌ ¼º°øÇÒ ¶§¿¡µµ, Å𺸠ÇÏÁö ¾Ê½À´Ï´Ù. ij¸¯ÅÍ Å¬·¡½ºÀÇ °áÇÕ°ú ±³Â÷. ij¸¯ÅÍ Å¬·¡½º´Â ´Ù¸¥ ij¸¯ÅÍ Å¬·¡½º³»·Î ÁöÁ¤Çϰųª °áÇÕ ¿¬»êÀÚ (¾Ï¹¬Àû)³ª ±³Â÷ ¿¬»êÀÚ (&&)¸¦ »ç¿ëÇØ ÀÛ¼ºÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. °áÇÕ ¿¬»êÀÚ´Â 1 kr ÀÌ»óÀÇ ¿ÀÆÛ·£µå Ŭ·¡½º¿¡ Æ÷ÇԵǴ ¸ðµç ij¸¯Å͸¦ Æ÷ÇÔÇÑ Å¬·¡½º¸¦ ³ªÅ¸³À´Ï´Ù. ±³Â÷ ¿¬»êÀÚ´Â 2 °³ÀÇ ¿ÀÆÛ·£µå Ŭ·¡½º¿¡ Æ÷ÇԵǴ ¸ðµç ij¸¯Å͸¦ Æ÷ÇÔÇÑ Å¬·¡½º¸¦ ³ªÅ¸³À´Ï´Ù.
ij¸¯ÅÍ Å¬·¡½º ¿¬»êÀÚ´Â ´ÙÀ½ÀÇ ¼ø¼·Î ¿ì¼± ¼øÀ§°¡ ³ô¾ÆÁý´Ï´Ù. Perl ¿ÍÀÇ Å« Â÷ÀÌÁ¡ Perl ¿¡¼´Â \1 ~ \9 ´Â Ç×»ó Àü¹æ ÂüÁ¶¶ó°í ÇØ¼®µË´Ï´Ù. 9 ¸¦ ³Ñ´Â ¼ýÀÚ°¡ backslash·Î À̽ºÄÉÀÌÇÁ µÇ°í ÀÖÀ» ¶§´Â ´ëÀÀÇÏ´Â ¼öÀÇ ºÎºÐ ÆÐÅÏÀÌ Á¸ÀçÇÏ´Â °æ¿ì, Àü¹æ ÂüÁ¶·Î °£ÁÖÇØÁý´Ï´Ù. Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â 8 Áø¼öÀÇ À̽ºÄÉÀÌÇÁ (°¡´ÉÇÑ °æ¿ì)·Î °£ÁÖÇØÁý´Ï´Ù. ÀÌ Å¬·¡½º¿¡¼´Â 8 Áø¼öÀÇ À̽ºÄÉÀÌÇÁ´Â Ç×»ó Á¦·Î·Î ½ÃÀ۵˴ϴÙ. \1 ~ \9 ´Â Ç×»ó Àü¹æ ÂüÁ¶¶ó°í ÇØ¼®µË´Ï´Ù. ±×°Íº¸´Ù Å« ¼ýÀÚ´Â Á¤±Ô Ç¥ÇöÀÇ ±× °³¼Ò¿¡ ´ëÀÀÇÏ´Â ¼öÀÇ ºÎºÐ ÆÐÅÏÀÌ Á¸ÀçÇÏ´Â °æ¿ì´Â Àü¹æ ÂüÁ¶·Î °£ÁÖÇØÁý´Ï´Ù. Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â ±× ¼ýÀÚ°¡ ±âÁ¸ÀÇ ±×·ì ¹øÈ£ ÀÌÇϰ¡ µÇ´ÂÁö 1 ÀÚ¸®¼öÀÇ ¼ýÀÚ°¡ µÉ ¶§±îÁö ÀÚ¸®¼ö°¡ ÁÙ¿©Áý´Ï´Ù. Perl ¿¡¼´Â ¸¶Áö¸· ¼º³ÉÀÌ Á¾·áÇÑ Àå¼Ò·ÎºÎÅÍ ¼º³ÉÀÇ Àç°³¸¦ ¿ä±¸ÇÒ ¶§´Â g Ç÷¡±×¸¦ »ç¿ëÇÕ´Ï´Ù. ÀÌ ±â´ÉÀº Perl ¿¡¼´Â Ç¥ÇöÀÇ ÃÖ»óÁ¤µµ¿¡ ÆÄ¹¯Èù Ç÷¡±×°¡ Ç¥Çö Àüü¿¡ Àû¿ëµË´Ï´Ù. ÀÌ Å¬·¡½ºÀÇ ³»ÀåÇϱâ Ç÷¡±×´Â ÆÄ¹¯Èù Àå¼Ò¿¡ °ü°è¾øÀÌ, ±× °³¼Ò¿¡¼¸¸ À¯È¿ÇÏ°Ô µË´Ï´Ù. Ç÷¡±×°¡ ±×·ì³»¿¡ ÆÄ¹¯È÷°í ÀÖ´Â °æ¿ì´Â Perl ¿Í °°°Ô ±×·ìÀÇ ÃÖÈÄ·Î º¹¿øµË´Ï´Ù. Perl ¿¡¼´Â Ç¥Çö *a µîÀÌ ºÎÁ¤ÇÑ ¸ÅÄ¡ ±¸¹®À̳ª Ç¥Çö abc] µîÀÇ ¸Å´Þ·Á °ýÈ£¸¦ Çã¿ë Çϰí ÀÖ¾î, ±×°ÍµéÀ» ¸®ÅÍ·²·Î °£ÁÖÇÕ´Ï´Ù. ÀÌ Å¬·¡½º¿¡¼µµ ¸Å´Þ·Á °ýÈ£´Â ¹Þ¾ÆµéÀÔ´Ï´Ù¸¸,+,? ,* µîÀÇ ¸Å´Þ·Á ¸ÞŸij¶óũŸ´Â Çã¿ë ÇÏÁö ¾Ê°í ±×°ÍµéÀÌ ¹ß°ßµÇ¾úÀ» °æ¿ì´Â Á¤±Ô Ç¥Çö ±¸¹®ÀÇ µ¿ÀÛÀÇ »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â ¡¸Mastering Regular Expressions¡¹ (Jeffrey E. F. Friedl Àú, O'Reilly and Associates, 1997 ³â) À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
ÁÙ ³¡ ±âÈ£
UNIX_LINES
¸ðµå°¡ À¯È¿ÇÑ °æ¿ì´Â °³Çà ij¸¯Å͸¸ÀÌ ÁÙ ³¡ ±âÈ£·Î¼ Àνĵ˴ϴÙ.
DOTALL
Ç÷¡±×°¡ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì, ÁÙ ³¡ ±âÈ£ ÀÌ¿ÜÀÇ ¸ðµç ij¸¯ÅÍ¿Í ¼º³É µË´Ï´Ù.
Á¤±Ô Ç¥Çö ±×·ì°ú Àü¹æ ÂüÁ¶
1
((A)(B(C)))
2
(A)
3
(B(C))
4
(C)
Unicode ¼Æ÷Æ®
Perl 5 ¶ó´Â ºñ±³
1 ¸®ÅÍ·² À̽ºÄÉÀÌÇÁ \x 2 ±×·ìÈ [...] 3 ¹üÀ§ a-z 4 °áÇÕ [a-e][i-u] 5 ±³Â÷ [a-z&&[aeiou]]
Matcher
Ŭ·¡½º¿¡ ÀÇÇØ ¾Ï¹¬ÀûÀ¸·Î Á¦°øµË´Ï´Ù. find
¸Þ¼Òµå¸¦ ¹Ýº¹ÇØ È£ÃâÇϸé(ÀÚ), Á¤±Ô Ç¥Çö ¿£ÁøÀÌ ¸®¼ÂÆ® µÇÁö ¾Ê´Â ÀÌ»ó ¸¶Áö¸· ¼º³ÉÀÌ Á¾·áÇÑ Àå¼Ò·ÎºÎÅÍ ¸ÅÄ¡ Á¶ÀÛÀÌ Àç°³ÇÕ´Ï´Ù. PatternSyntaxException
¸¦ ½½·Î¿ì ÇÕ´Ï´Ù.
String.split(String, int)
,
String.split(String)
,
Á÷·ÄÈ µÈ Çü½Ä
ÇʵåÀÇ °³¿ä | |
static int |
CANON_EQ
Ç¥ÁØ µî°¡¸¦ À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù. |
static int |
CASE_INSENSITIVE
´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅĪÀ» À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù. |
static int |
COMMENTS
ÆÐÅϳ»¿¡¼ °ø¹é°ú ÄÚ¸àÆ®¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇÕ´Ï´Ù. |
static int |
DOTALL
DOTALL ¸ðµå¸¦ À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù. |
static int |
MULTILINE
º¹¼öÇà ¸ðµå¸¦ À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù. |
static int |
UNICODE_CASE
Unicode ¿¡ ÁذÅÇÑ ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅĪÀ» À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù. |
static int |
UNIX_LINES
Unix ¶óÀÎ ¸ðµå¸¦ À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù. |
¸Þ¼ÒµåÀÇ °³¿ä | |
static Pattern |
compile (String regex)
ÁöÁ¤µÈ Á¤±Ô Ç¥ÇöÀ» ÆÐÅÏ¿¡ ÄÄÆÄÀÏ ÇÕ´Ï´Ù. |
static Pattern |
compile (String regex,
int flags)
ÁöÁ¤µÈ Ç÷¡±×¸¦ »ç¿ëÇØ, ÁöÁ¤µÈ Á¤±Ô Ç¥ÇöÀ» ÆÐÅÏ¿¡ ÄÄÆÄÀÏ ÇÕ´Ï´Ù. |
int |
flags ()
ÀÌ ÆÐÅÏÀÇ ¸ÅÄ¡ Ç÷¡±×¸¦ µ¹·ÁÁÝ´Ï´Ù. |
Matcher |
matcher (CharSequence input)
ÁöÁ¤µÈ ÀԷ°ú ÀÌ ÆÐÅÏÀ» ¼º³É ÇÏ´Â Á¤±Ô Ç¥Çö ¿£ÁøÀ» ÀÛ¼ºÇÕ´Ï´Ù. |
static boolean |
matches (String regex,
CharSequence input)
ÁöÁ¤µÈ Á¤±Ô Ç¥ÇöÀ» ÄÄÆÄÀÏ ÇØ, ÁöÁ¤µÈ ÀԷ°ú ±× Á¤±Ô Ç¥ÇöÀ» ¼º³É ÇÕ´Ï´Ù. |
String |
pattern ()
ÀÌ ÆÐÅÏÀÇ ÄÄÆÄÀÏ¿øÀÇ Á¤±Ô Ç¥ÇöÀ» µ¹·ÁÁÝ´Ï´Ù. |
String [] |
split (CharSequence input)
ÀÌ ÆÐÅÏÀÇ ¼º³É¿¡ ±Ù°ÅÇØ, ÁöÁ¤µÈ ÀÔ·Â ¼øÂ÷ ¼ø¼¸¦ ºÐÇÒÇÕ´Ï´Ù. |
String [] |
split (CharSequence input,
int limit)
ÀÌ ÆÐÅÏÀÇ ¼º³É¿¡ ±Ù°ÅÇØ, ÁöÁ¤µÈ ÀÔ·Â ¼øÂ÷ ¼ø¼¸¦ ºÐÇÒÇÕ´Ï´Ù. |
Ŭ·¡½º java.lang. Object ¿¡¼ »ó¼Ó¹ÞÀº ¸Þ¼Òµå |
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
ÇʵåÀÇ »ó¼¼ |
public static final int UNIX_LINES
ÀÌ ¸ðµå¿¡¼´Â '\n' ÁÙ ³¡ ±âÈ£ Àܴ̿ . ,^,$ ÀÇ µ¿ÀÛÀ¸·Î ÀνĵÇÁö ¾Ê½À´Ï´Ù.
Unix ¶óÀÎ ¸ðµå´Â ³»ÀåÇϱâ Ç÷¡±× Ç¥Çö (? d) »ç¿ëÇØ À¯È¿ÇÏ°Ô ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
public static final int CASE_INSENSITIVE
µðÆúÆ®¿¡¼´Â ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅĪ¿¡¼´Â US-ASCII ij¸¯ÅÍ ÀÎÄÚµùÀÇ Ä³¸¯Å͸¸ÀÌ ¼º³É ÇÏ´Â °ÍÀ» ÀüÁ¦·Î Çϰí ÀÖ½À´Ï´Ù. Unicode ¿¡ ÁذÅÇÑ ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅĪÀ» À¯È¿ÇÏ°Ô ÇÏ·Á¸é ,UNICODE_CASE
Ç÷¡±×¸¦ ÀÌ Ç÷¡±×¿Í Á¶ÇÕÇØ ÁöÁ¤ÇÕ´Ï´Ù.
´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅĪÀº ³»ÀåÇϱâ Ç÷¡±× Ç¥Çö (? i) ¸¦ »ç¿ëÇØ À¯È¿ÇÏ°Ô ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
ÀÌ Ç÷¡±×¸¦ ÁöÁ¤Çϸé(ÀÚ), ÆÛÆ÷¸Õ½º°¡ Á¶±Ý ÀúÇÏÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.
public static final int COMMENTS
ÀÌ ¸ðµå¿¡¼´Â °ø¹éÀº ¹«½ÃµÇ¾î# ·Î ½ÃÀ۵Ǵ ³»ÀåÇϱâ ÄÚ¸àÆ®´Â ÁÙ ³¡±îÁö ¹«½ÃµË´Ï´Ù.
ÄÚ¸àÆ® ¸ðµå´Â ³»ÀåÇϱâ Ç÷¡±× Ç¥Çö (? x) ¸¦ »ç¿ëÇØ À¯È¿ÇÏ°Ô ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
public static final int MULTILINE
º¹¼öÇà ¸ðµå¿¡¼´Â Ç¥Çö ^ °ú $ ´Â °¢°¢ ÁÙ ³¡ ±âÈ£ ¶Ç´Â ÀÔ·Â ¼øÂ÷ ¼ø¼ÀÇ ¸»¹ÌÀÇ Á÷ÈÄ ¶Ç´Â Á÷Àü¿¡ ¼º³É ÇÕ´Ï´Ù. µðÆúÆ®¿¡¼´Â ÀÌ·¯ÇÑ Ç¥ÇöÀº ÀÔ·Â ¼øÂ÷ ¼ø¼ ÀüüÀÇ ¼±µÎ¿Í ¸»¹Ì¿¡¸¸ ¼º³É ÇÕ´Ï´Ù.
º¹¼öÇà ¸ðµå´Â ³»ÀåÇϱâ Ç÷¡±× Ç¥Çö (? m) ¸¦ »ç¿ëÇØ À¯È¿ÇÏ°Ô ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
public static final int DOTALL
DOTALL ¸ðµå¿¡¼´Â Ç¥Çö . ÇÏÇ฻ ±âÈ£¸¦ Æ÷ÇÔÇÑ ÀÓÀÇÀÇ Ä³¸¯ÅÍ¿¡ ¼º³É ÇÕ´Ï´Ù. µðÆúÆ®¿¡¼´Â ÀÌ Ç¥ÇöÀº ÁÙ ³¡ ±âÈ£¿¡ ¼º³É ÇÏÁö ¾Ê½À´Ï´Ù.
DOTALL ¸ðµå´Â ³»ÀåÇϱâ Ç÷¡±× Ç¥Çö (? s) ¸¦ »ç¿ëÇØ À¯È¿ÇÏ°Ô ÇÒ ¼öµµ ÀÖ½À´Ï´Ù (s ´Â ¡¸´ÜÀÏÇࡹ¸ðµåÀÇ ¹«¸ °üÀý ¸ð´ÖÅ©¿¡¼, Perl ¿¡¼´Â DOTALL ¸ðµå·Î ºÒ¸°´Ù).
public static final int UNICODE_CASE
ÀÌ Ç÷¡±×¿Í CASE_INSENSITIVE
Ç÷¡±×¸¦ µ¿½Ã¿¡ ÁöÁ¤ÇßÀ» °æ¿ì´Â Unicode Ç¥ÁØ¿¡ ÁذÅÇÑ ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅĪÀ» ÇÕ´Ï´Ù. µðÆúÆ®ÀÇ ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅĪ¿¡¼´Â US-ASCII ij¸¯ÅÍ µ§ÄÚµò±×ÀÇ Ä³¸¯Å͸¸ÀÌ ¼º³É ÇÕ´Ï´Ù.
Unicode ¿¡ ÁذÅÇÑ ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅĪÀº ³»ÀåÇϱâ Ç÷¡±× Ç¥Çö (? u) ¸¦ »ç¿ëÇØ À¯È¿ÇÏ°Ô ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
ÀÌ Ç÷¡±×¸¦ ÁöÁ¤Çϸé(ÀÚ), ÆÛÆ÷¸Õ½º°¡ ÀúÇÏÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.
public static final int CANON_EQ
ÀÌ Ç÷¡±×¸¦ ÁöÁ¤ÇßÀ» ¶§´Â 2 °³ÀÇ Ä³¸¯ÅÍÀÇ ¿ÏÀüÇÑ Ç¥ÁØ ºÐÇØ°¡ ¼º³É ÇßÀ» °æ¿ì¿¡ ÇÑÇØ, ±×·¯ÇÑ Ä³¸¯ÅͰ¡ ¼º³É ÇÑ´Ù°í º¸ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, ÀÌ Ç÷¡±×¸¦ ÁöÁ¤Çϸé(ÀÚ), Ç¥Çö "a\u030A" ´Â ij¸¯ÅÍ ¶óÀÎ "? " ¿¡ ¼º³É ÇÕ´Ï´Ù. µðÆúÆ®ÀÇ ¸ÅĪ¿¡¼´Â Ç¥ÁØ µî°¡°¡ °í·ÁµÇÁö ¾Ê½À´Ï´Ù.
Ç¥ÁØ µî°¡¸¦ À¯È¿ÇϰÔÇϱâ À§ÇÑ ³»ÀåÇϱâ Ç÷¡±× ij¸¯ÅÍ´Â ¾ø½À´Ï´Ù.
ÀÌ Ç÷¡±×¸¦ ÁöÁ¤Çϸé(ÀÚ), ÆÛÆ÷¸Õ½º°¡ ÀúÇÏÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.
¸Þ¼ÒµåÀÇ »ó¼¼ |
public static Pattern compile(String regex)
regex
- ÄÄÆÄÀÏ µÇ´Â Ç¥Çö
PatternSyntaxException
- Ç¥ÇöÀÇ ±¸¹®ÀÌ ¹«È¿ÀÎ °æ¿ìpublic static Pattern compile(String regex, int flags)
regex
- ÄÄÆÄÀÏ µÇ´Â Ç¥Çöflags
- ¸ÅÄ¡ Ç÷¡±×. CASE_INSENSITIVE
,MULTILINE
,DOTALL
,UNICODE_CASE
,CANON_EQ
µîÀ» Æ÷ÇÔÇÑ ºñÆ® ¸¶½ºÅ©
IllegalArgumentException
- Á¤ÀÇµÈ ¸ÅÄ¡ Ç÷¡±×¿¡ ´ëÀÀÇÏÁö ¾Ê´Â ºñƮġ°¡ flags ·Î ¼³Á¤µÇ¾úÀ» °æ¿ì
PatternSyntaxException
- Ç¥ÇöÀÇ ±¸¹®ÀÌ ¹«È¿ÀÎ °æ¿ìpublic String pattern()
public Matcher matcher(CharSequence input)
input
- ¸ÅÄ¡µÇ´Â ij¸¯ÅÍ ¼øÂ÷ ¼ø¼
public int flags()
public static boolean matches(String regex, CharSequence input)
ÀÌ ¸Þ¼Òµå¸¦ ´ÙÀ½ÀÇ Çü½Ä¿¡¼ È£ÃâÇϸé(ÀÚ), »ó±âÀÇ µ¿ÀÛÀ» ÇÕ´Ï´Ù.
»ó±âÀÇ ¸Þ¼Òµå´Â ´ÙÀ½ÀÇ Ç¥Çö°ú °°°Ô µ¿ÀÛÇÕ´Ï´Ù.Pattern.matches(regex, input);
Pattern.compile(regex). matcher(input). matches()
ÆÐÅÏÀÌ ¹Ýº¹ÇØ »ç¿ëÇÏ´Â °æ¿ì´Â ±× ÆÐÅÏÀ» ÄÄÆÄÀÏ ÇØ ÀçÀÌ¿ëÇÑ (ºÐ)ÆíÀÌ, ¸Åȸ ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇßÀ» °æ¿ìº¸´Ù È¿À²ÀûÀÔ´Ï´Ù.
regex
- ÄÄÆÄÀÏ µÇ´Â Ç¥Çöinput
- ¸ÅÄ¡µÇ´Â ij¸¯ÅÍ ¼øÂ÷ ¼ø¼
PatternSyntaxException
- Ç¥ÇöÀÇ ±¸¹®ÀÌ ¹«È¿ÀÎ °æ¿ìpublic String [] split(CharSequence input, int limit)
ÀÌ ¸Þ¼Òµå·ÎºÎÅÍ µ¹·ÁÁÖ¾îÁö´Â ¹è¿Àº ÀÔ·Â ¼øÂ÷ ¼ø¼ÀÇ ºÎºÐ ij¸¯ÅÍ ¶óÀÎÀ¸·Î ±¸¼ºµË´Ï´Ù. ÀÌ·¯ÇÑ ºÎºÐ ij¸¯ÅÍ ¶óÀÎÀº ÀÌ ÆÐÅϰú ¼º³É ÇÏ´Â ´Ù¸¥ ºÎºÐ ¼øÂ÷ ¼ø¼¿¡ ÀÇÇØ ºÐÇÒµÈ Ä³¸¯ÅÍ ¶óÀÎÀΰ¡, ÀÔ·Â ¼øÂ÷ ¼ø¼ÀÇ Á¾·á¿¡ ÀÇÇØ ºÐÇÒµÈ Ä³¸¯ÅÍ ¶óÀÎÀÔ´Ï´Ù. ¹è¿³»ÀÇ ºÎºÐ ij¸¯ÅÍ ¶óÀÎÀº ÀÔ·Â ¼øÂ÷ ¼ø¼³»¿¡¼ ¹ß»ýÇÑ Â÷·Ê·Î ÁÙÁö¾î ÀÖ½À´Ï´Ù. ÀÌ ÆÐÅÏÀÌ ÀÔ·Â ¼øÂ÷ ¼ø¼ÀÇ ºÎºÐ ¼øÂ÷ ¼ø¼¿¡ ¼º³É ÇÏÁö ¾Ê´Â °æ¿ì, µ¹·ÁÁÖ¾îÁö´Â ¹è¿Àº 1 °³ÀÇ ¿ä¼Ò, Áï ij¸¯ÅÍ ¶óÀÎ Çü½ÄÀÇ ÀÔ·Â ¼øÂ÷ ¼ø¼¸¸À¸·Î ±¸¼ºµË´Ï´Ù.
limit ÆÄ¶ó¹ÌÅÍ´Â ÀÌ ÆÐÅÏÀÇ Àû¿ë ȸ¼ö, Áï, µ¹·ÁÁÖ¾îÁö´Â ¹è¿ÀÇ ±æÀ̸¦ Á¦¾îÇÕ´Ï´Ù. Á¦ÇÑ n °¡ Á¦·Îº¸´Ù Å« °æ¿ì, ÀÌ ÆÐÅÏÀº n - 1 ȸÀÌÇÏÀÇ È¸¼ö°¡ Àû¿ëµÇ¾î ¹è¿ÀÇ ±æÀÌ´Â n ÀÌÇϰ¡ µË´Ï´Ù. ¹è¿ÀÇ ¸¶Áö¸· ¿£Æ®¸®¿¡´Â ¸¶Áö¸·¿¡ ¼º³É ÇÑ ´Ü¶ô ij¸¯ÅÍ ÀÌÈÄÀÇ ÀÔ·Â ¼øÂ÷ ¼ø¼°¡ ¸ðµÎ Æ÷ÇԵ˴ϴÙ. n °¡ ºÎÀÇ °ªÀÇ °æ¿ì, ÀÌ ÆÐÅÏÀÇ Àû¿ë ȸ¼ö¿Í ¹è¿ÀÇ ±æÀÌ´Â Á¦ÇѵÇÁö ¾Ê½À´Ï´Ù. n °¡ Á¦·ÎÀÇ °æ¿ì, ÀÌ ÆÐÅÏÀÇ Àû¿ë ȸ¼ö¿Í ¹è¿ÀÇ ±æÀÌ´Â Á¦Çѵ˴ϴٸ¸, ÈļÓÀÇ ÇÏ´ÃÀÇ Ä³¸¯ÅÍ ¶óÀÎÀº ÆÄ±âµË´Ï´Ù.
¿¹¸¦ µé¾î, ÀÔ·Â ¼øÂ÷ ¼ø¼ "boo:and:foo" ´Â ÀÌ·¯ÇÑ ÆÄ¶ó¹ÌÅÍ¿¡ ÀÇÇØ ´ÙÀ½°ú °°ÀÌ ºÐÇҵ˴ϴÙ.
Á¤±Ô Ç¥Çö Á¦ÇÑ °á°ú : 2 { "boo", "and:foo" } : 5 { "boo", "and", "foo" } : -2 { "boo", "and", "foo" } o 5 { "b", "", ":and:f", "", "" } o -2 { "b", "", ":and:f", "", "" } o 0 { "b", "", ":and:f" }
input
- ºÐÇҵǴ ij¸¯ÅÍ ¼øÂ÷ ¼ø¼limit
- °á°úÀÇ ÇØ ±ÍÀÇÄ¡ (»ó±â´ë·Î)
public String [] split(CharSequence input)
ÀÌ ¸Þ¼Òµå´Â limit Àμö¸¦ Á¦·Î·Î ÇØ split
¸Þ¼Òµå¸¦ È£ÃâÇßÀ» °æ¿ì¿Í °°°Ô ÀÔ·Â ¼øÂ÷ ¼ø¼¸¦ ºÐÇÒÇÕ´Ï´Ù. Áï, µ¹·ÁÁÖ¾îÁö´Â ¹è¿¿¡´Â ÈļÓÀÇ ÇÏ´ÃÀÇ Ä³¸¯ÅÍ ¶óÀÎÀº Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù.
¿¹¸¦ µé¾î, ÀÔ·Â ¼øÂ÷ ¼ø¼ "boo:and:foo" ´Â ÀÌ·¯ÇÑ Ç¥Çö¿¡ ÀÇÇØ ´ÙÀ½°ú °°ÀÌ ºÐÇҵ˴ϴÙ.
Á¤±Ô Ç¥Çö °á°ú : { "boo", "and", "foo" } o { "b", "", ":and:f" }
input
- ºÐÇҵǴ ij¸¯ÅÍ ¼øÂ÷ ¼ø¼
|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
Java, Java 2 D, ¹× JDBC ´Â ¹Ì±¹ ¹× ±× ¿ÜÀÇ ³ª¶ó¿¡ ÀÖ¾î¼ÀÇ ¹Ì±¹ Sun Microsystems, Inc. ÀÇ »óÇ¥ ȤÀº µî·Ï»óÇ¥ÀÔ´Ï´Ù.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.