JavaTM 2
Platform
Std.  Ed.  v1. 4.0

java.util.regex
Ŭ·¡½º Pattern

java.lang.Object 
  |
  +--java.util.regex.Pattern
¸ðµç ±¸Çö ÀÎÅÍÆäÀ̽º:
Serializable

public final class Pattern
extends Object
implements Serializable

ÄÄÆÄÀÏ ³¡³­ Á¤±Ô Ç¥ÇöÀÔ´Ï´Ù.

Á¤±Ô Ç¥ÇöÀº ij¸¯ÅÍ ¶óÀÎÀ¸·Î¼­ ÁöÁ¤ÇØ, ÀÌ Å¬·¡½ºÀÇ ÀνºÅϽº¿¡ ÄÄÆÄÀÏ ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. »ý¼ºµÈ ÆÐÅÏÀº Matcher ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇϱâ À§Çؼ­ »ç¿ëµË´Ï´Ù. ÀÌ ¿ÀºêÁ§Æ®´Â ÀÓÀÇÀÇ Ä³¸¯ÅÍ ¼øÂ÷ ¼ø¼­ °÷ÀÇ Á¤±Ô Ç¥ÇöÀ» ¼º³É ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼º³ÉÀ» ½ÇÇàÇßÀ» ¶§ »óÅ´ ¸ðµÎ Á¤±Ô Ç¥Çö ¿£Áø¿¡ ÀúÀåµË´Ï´Ù. ÀÌ ¶§¹®¿¡, º¹¼öÀÇ Á¤±Ô Ç¥Çö ¿£ÁøÀÌ °°Àº ÆÐÅÏÀ» °øÀ¯ÇÒ ¼ö ÀÖ½À´Ï´Ù.

Ç¥ÁØÀûÀÎ 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, À̽ºÄÉÀÌÇÁ, ¹× Àοë

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¸¯ÅÍÀÇ Ä³¸¯ÅÍ ¼øÂ÷ ¼ø¼­ÀÔ´Ï´Ù. ´ÙÀ½ÀÇ Ä³¸¯ÅͰ¡ ÁÙ ³¡ ±âÈ£·Î¼­ Àνĵ˴ϴÙ.

UNIX_LINES ¸ðµå°¡ À¯È¿ÇÑ °æ¿ì´Â °³Çà ij¸¯Å͸¸ÀÌ ÁÙ ³¡ ±âÈ£·Î¼­ Àνĵ˴ϴÙ.

Á¤±Ô Ç¥Çö . (Àº)´Â DOTALL Ç÷¡±×°¡ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì, ÁÙ ³¡ ±âÈ£ ÀÌ¿ÜÀÇ ¸ðµç ij¸¯ÅÍ¿Í ¼º³É µË´Ï´Ù.

Á¤±Ô Ç¥Çö ±×·ì°ú Àü¹æ ÂüÁ¶

Àü¹æ ÂüÁ¶¸¦ ½Ç½ÃÇÏ´Â Á¤±Ô Ç¥Çö ±×·ì¿¡´Â ¿ÞÂÊ¿¡¼­ ¿ìÃøÇâ¿¡ ¿ÞÂÊȯ°ýÈ£¸¦ ¼¼´Â °Í¿¡ ÀÇÇØ, ¹øÈ£¸¦ ºÙÀÏ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, Ç¥Çö ((A)(B(C))) ´Â ´ÙÀ½ÀÇ 4 °³ÀÇ ±×·ìÀ¸·Î ºÐ·ùµË´Ï´Ù.

1     ((A)(B(C)))
2 (A)
3 (B(C))
4 (C)

±×·ì 0 Àº Ç×»ó Ç¥Çö Àüü¸¦ ³ªÅ¸³À´Ï´Ù.

Àü¹æ ÂüÁ¶¸¦ ½Ç½ÃÇÏ´Â Á¤±Ô Ç¥Çö ±×·ìÀÌ ÀÌ¿Í °°ÀÌ ºÐ·ùµÇ°í ³ª¼­, ÀÔ·Â ¼øÂ÷ ¼ø¼­ÀÇ °¢ ºÎºÐ ¼øÂ÷ ¼ø¼­°¡ ÀÌ·¯ÇÑ ±×·ì°ú ¼º³É µÇ¾î ¼º³É ÇÒ ¶§¸¶´Ù ºÎºÐ ¼øÂ÷ ¼ø¼­°¡ º¸Á¸µË´Ï´Ù. Á¤±Ô Ç¥Çö ±×·ìÀÇ ºÎºÐ ¼øÂ÷ ¼ø¼­´Â Àü¹æ ÂüÁ¶·Î¼­ Ç¥Çö³»¿¡¼­ ³ªÁß¿¡ »ç¿ëÇÒ ¼ö ÀÖ°Ú½À´Ï´Ù. ¶Ç, ¸ÅÄ¡ Á¶ÀÛÀÌ ¿Ï·áÇϸé(ÀÚ), Á¤±Ô Ç¥Çö ¿£ÁøÀ¸·ÎºÎÅÍ ²¨³¾ ¼öµµ ÀÖ½À´Ï´Ù.

±×·ì°ú ÀÔ·Â ¼øÂ÷ ¼ø¼­°¡ ¼º³É µÇ¸é(ÀÚ), ±× ±×·ì°ú ¸¶Áö¸·¿¡ ¼º³É ÇÑ ºÎºÐ ¼øÂ÷ ¼ø¼­°¡ Ç×»ó Àü¹æ ÂüÁ¶µË´Ï´Ù. ¼ö·®ÀÚ¸¦ ÁöÁ¤ÇßÀ» °æ¿ì´Â ±×·ìÀÌ Çѹø ´õ Æò°¡µË´Ï´Ù. 2 ¹øÂ°ÀÇ Æò°¡°¡ ½ÇÆÐÇßÀ» °æ¿ì¿¡¼­µµ, ±× Àü¿¡ Àü¹æ ÂüÁ¶µÈ °ªÀÌ ÀÖ´Â °æ¿ì´Â ±× °ªÀÌ º¸°ü À¯ÁöµË´Ï´Ù. ¿¹¸¦ µé¾î, ij¸¯ÅÍ ¶óÀÎ "aba" ¸¦ Ç¥Çö (a(b)? )+ (¿Í)°ú ¼º³É ÇßÀ» °æ¿ì´Â ±×·ì 2 ·Î ¼³Á¤µÈ "b" °¡ º¸°ü À¯ÁöµË´Ï´Ù. Àü¹æ ÂüÁ¶µÈ ¸ðµç ÀÔ·ÂÀº °¢ ¸ÅÄ¡°¡ ½ÃÀ۵DZâ Àü¿¡ ÆÄ±âµË´Ï´Ù.

(? ±×¸®°í ½ÃÀ۵Ǵ ±×·ìÀº ¼ø¼öÇÑ ¡¸Àü¹æ ÂüÁ¶µÇÁö ¾Ê´Â Á¤±Ô Ç¥Çö¡¹±×·ì¿¡¼­, ÅØ½ºÆ®¸¦ Àü¹æ ÂüÁ¶ÇÏÁö ¾Ê°í ±×·ì Àüü¿¡ Ä«¿îÆ® µÇÁö ¾Ê½À´Ï´Ù.

Unicode ¼­Æ÷Æ®

ÀÌ Å¬·¡½º´Â 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 5 ¶ó´Â ºñ±³

ÀÌ Å¬·¡½º¿¡¼­ ¼­Æ÷Æ®µÇ¾î ÀÖÁö ¾ÊÀº Perl ±¸¹®

ÀÌ Å¬·¡½º¿¡¼­ ¼­Æ÷Æ®µÇ°í ÀÖÁö¸¸, Perl ·Î ¼­Æ÷Æ®µÇ¾î ÀÖÁö ¾ÊÀº ±¸¹®

Perl ¿ÍÀÇ Å« Â÷ÀÌÁ¡

Á¤±Ô Ç¥Çö ±¸¹®ÀÇ µ¿ÀÛÀÇ »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â ¡¸Mastering Regular Expressions¡¹ (Jeffrey E. F. Friedl Àú, O'Reilly and Associates, 1997 ³â) À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

µµÀÔµÈ ¹öÁ¯:
1.4
°ü·Ã Ç׸ñ:
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
 

ÇʵåÀÇ »ó¼¼

UNIX_LINES

public static final int UNIX_LINES
Unix ¶óÀÎ ¸ðµå¸¦ À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù.

ÀÌ ¸ðµå¿¡¼­´Â '\n' ÁÙ ³¡ ±âÈ£ Àܴ̿ . ,^,$ ÀÇ µ¿ÀÛÀ¸·Î ÀνĵÇÁö ¾Ê½À´Ï´Ù.

Unix ¶óÀÎ ¸ðµå´Â ³»ÀåÇϱâ Ç÷¡±× Ç¥Çö  (? d) »ç¿ëÇØ À¯È¿ÇÏ°Ô ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

°ü·Ã Ç׸ñ:
Á¤¼ö ÇʵåÄ¡

CASE_INSENSITIVE

public static final int CASE_INSENSITIVE
´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅĪÀ» À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù.

µðÆúÆ®¿¡¼­´Â ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅĪ¿¡¼­´Â US-ASCII ij¸¯ÅÍ ÀÎÄÚµùÀÇ Ä³¸¯Å͸¸ÀÌ ¼º³É ÇÏ´Â °ÍÀ» ÀüÁ¦·Î Çϰí ÀÖ½À´Ï´Ù. Unicode ¿¡ ÁذÅÇÑ ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅĪÀ» À¯È¿ÇÏ°Ô ÇÏ·Á¸é ,UNICODE_CASE Ç÷¡±×¸¦ ÀÌ Ç÷¡±×¿Í Á¶ÇÕÇØ ÁöÁ¤ÇÕ´Ï´Ù.

´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅĪÀº ³»ÀåÇϱâ Ç÷¡±× Ç¥Çö  (? i) ¸¦ »ç¿ëÇØ À¯È¿ÇÏ°Ô ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

ÀÌ Ç÷¡±×¸¦ ÁöÁ¤Çϸé(ÀÚ), ÆÛÆ÷¸Õ½º°¡ Á¶±Ý ÀúÇÏÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.

°ü·Ã Ç׸ñ:
Á¤¼ö ÇʵåÄ¡

COMMENTS

public static final int COMMENTS
ÆÐÅϳ»¿¡¼­ °ø¹é°ú ÄÚ¸àÆ®¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇÕ´Ï´Ù.

ÀÌ ¸ðµå¿¡¼­´Â °ø¹éÀº ¹«½ÃµÇ¾î# ·Î ½ÃÀ۵Ǵ ³»ÀåÇϱâ ÄÚ¸àÆ®´Â ÁÙ ³¡±îÁö ¹«½ÃµË´Ï´Ù.

ÄÚ¸àÆ® ¸ðµå´Â ³»ÀåÇϱâ Ç÷¡±× Ç¥Çö  (? x) ¸¦ »ç¿ëÇØ À¯È¿ÇÏ°Ô ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

°ü·Ã Ç׸ñ:
Á¤¼ö ÇʵåÄ¡

MULTILINE

public static final int MULTILINE
º¹¼öÇà ¸ðµå¸¦ À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù.

º¹¼öÇà ¸ðµå¿¡¼­´Â Ç¥Çö ^ °ú $ ´Â °¢°¢ ÁÙ ³¡ ±âÈ£ ¶Ç´Â ÀÔ·Â ¼øÂ÷ ¼ø¼­ÀÇ ¸»¹ÌÀÇ Á÷ÈÄ ¶Ç´Â Á÷Àü¿¡ ¼º³É ÇÕ´Ï´Ù. µðÆúÆ®¿¡¼­´Â ÀÌ·¯ÇÑ Ç¥ÇöÀº ÀÔ·Â ¼øÂ÷ ¼ø¼­ ÀüüÀÇ ¼±µÎ¿Í ¸»¹Ì¿¡¸¸ ¼º³É ÇÕ´Ï´Ù.

º¹¼öÇà ¸ðµå´Â ³»ÀåÇϱâ Ç÷¡±× Ç¥Çö  (? m) ¸¦ »ç¿ëÇØ À¯È¿ÇÏ°Ô ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

°ü·Ã Ç׸ñ:
Á¤¼ö ÇʵåÄ¡

DOTALL

public static final int DOTALL
DOTALL ¸ðµå¸¦ À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù.

DOTALL ¸ðµå¿¡¼­´Â Ç¥Çö . ÇÏÇ฻ ±âÈ£¸¦ Æ÷ÇÔÇÑ ÀÓÀÇÀÇ Ä³¸¯ÅÍ¿¡ ¼º³É ÇÕ´Ï´Ù. µðÆúÆ®¿¡¼­´Â ÀÌ Ç¥ÇöÀº ÁÙ ³¡ ±âÈ£¿¡ ¼º³É ÇÏÁö ¾Ê½À´Ï´Ù.

DOTALL ¸ðµå´Â ³»ÀåÇϱâ Ç÷¡±× Ç¥Çö  (? s) ¸¦ »ç¿ëÇØ À¯È¿ÇÏ°Ô ÇÒ ¼öµµ ÀÖ½À´Ï´Ù (s ´Â ¡¸´ÜÀÏÇࡹ¸ðµåÀÇ ¹«¸­ °üÀý ¸ð´ÖÅ©¿¡¼­, Perl ¿¡¼­´Â DOTALL ¸ðµå·Î ºÒ¸°´Ù).

°ü·Ã Ç׸ñ:
Á¤¼ö ÇʵåÄ¡

UNICODE_CASE

public static final int UNICODE_CASE
Unicode ¿¡ ÁذÅÇÑ ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅĪÀ» À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù.

ÀÌ Ç÷¡±×¿Í CASE_INSENSITIVE Ç÷¡±×¸¦ µ¿½Ã¿¡ ÁöÁ¤ÇßÀ» °æ¿ì´Â Unicode Ç¥ÁØ¿¡ ÁذÅÇÑ ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅĪÀ» ÇÕ´Ï´Ù. µðÆúÆ®ÀÇ ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅĪ¿¡¼­´Â US-ASCII ij¸¯ÅÍ µ§ÄÚµò±×ÀÇ Ä³¸¯Å͸¸ÀÌ ¼º³É ÇÕ´Ï´Ù.

Unicode ¿¡ ÁذÅÇÑ ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅĪÀº ³»ÀåÇϱâ Ç÷¡±× Ç¥Çö  (? u) ¸¦ »ç¿ëÇØ À¯È¿ÇÏ°Ô ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

ÀÌ Ç÷¡±×¸¦ ÁöÁ¤Çϸé(ÀÚ), ÆÛÆ÷¸Õ½º°¡ ÀúÇÏÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.

°ü·Ã Ç׸ñ:
Á¤¼ö ÇʵåÄ¡

CANON_EQ

public static final int CANON_EQ
Ç¥ÁØ µî°¡¸¦ À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù.

ÀÌ Ç÷¡±×¸¦ ÁöÁ¤ÇßÀ» ¶§´Â 2 °³ÀÇ Ä³¸¯ÅÍÀÇ ¿ÏÀüÇÑ Ç¥ÁØ ºÐÇØ°¡ ¼º³É ÇßÀ» °æ¿ì¿¡ ÇÑÇØ, ±×·¯ÇÑ Ä³¸¯ÅͰ¡ ¼º³É ÇÑ´Ù°í º¸ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, ÀÌ Ç÷¡±×¸¦ ÁöÁ¤Çϸé(ÀÚ), Ç¥Çö "a\u030A" ´Â ij¸¯ÅÍ ¶óÀÎ "? " ¿¡ ¼º³É ÇÕ´Ï´Ù. µðÆúÆ®ÀÇ ¸ÅĪ¿¡¼­´Â Ç¥ÁØ µî°¡°¡ °í·ÁµÇÁö ¾Ê½À´Ï´Ù.

Ç¥ÁØ µî°¡¸¦ À¯È¿ÇϰÔÇϱâ À§ÇÑ ³»ÀåÇϱâ Ç÷¡±× ij¸¯ÅÍ´Â ¾ø½À´Ï´Ù.

ÀÌ Ç÷¡±×¸¦ ÁöÁ¤Çϸé(ÀÚ), ÆÛÆ÷¸Õ½º°¡ ÀúÇÏÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.

°ü·Ã Ç׸ñ:
Á¤¼ö ÇʵåÄ¡
¸Þ¼ÒµåÀÇ »ó¼¼

compile

public static Pattern  compile(String  regex)
ÁöÁ¤µÈ Á¤±Ô Ç¥ÇöÀ» ÆÐÅÏ¿¡ ÄÄÆÄÀÏ ÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
regex - ÄÄÆÄÀÏ µÇ´Â Ç¥Çö
¿¹¿Ü:
PatternSyntaxException - Ç¥ÇöÀÇ ±¸¹®ÀÌ ¹«È¿ÀÎ °æ¿ì

compile

public static Pattern  compile(String  regex,
                              int flags)
ÁöÁ¤µÈ Ç÷¡±×¸¦ »ç¿ëÇØ, ÁöÁ¤µÈ Á¤±Ô Ç¥ÇöÀ» ÆÐÅÏ¿¡ ÄÄÆÄÀÏ ÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
regex - ÄÄÆÄÀÏ µÇ´Â Ç¥Çö
flags - ¸ÅÄ¡ Ç÷¡±×. CASE_INSENSITIVE ,MULTILINE ,DOTALL ,UNICODE_CASE ,CANON_EQ µîÀ» Æ÷ÇÔÇÑ ºñÆ® ¸¶½ºÅ©
¿¹¿Ü:
IllegalArgumentException - Á¤ÀÇµÈ ¸ÅÄ¡ Ç÷¡±×¿¡ ´ëÀÀÇÏÁö ¾Ê´Â ºñƮġ°¡ flags ·Î ¼³Á¤µÇ¾úÀ» °æ¿ì
PatternSyntaxException - Ç¥ÇöÀÇ ±¸¹®ÀÌ ¹«È¿ÀÎ °æ¿ì

pattern

public String  pattern()
ÀÌ ÆÐÅÏÀÇ ÄÄÆÄÀÏ¿øÀÇ Á¤±Ô Ç¥ÇöÀ» µ¹·ÁÁÝ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ ÆÐÅÏÀÇ ÄÄÆÄÀÏ¿ø

matcher

public Matcher  matcher(CharSequence  input)
ÁöÁ¤µÈ ÀԷ°ú ÀÌ ÆÐÅÏÀ» ¼º³É ÇÏ´Â Á¤±Ô Ç¥Çö ¿£ÁøÀ» ÀÛ¼ºÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
input - ¸ÅÄ¡µÇ´Â ij¸¯ÅÍ ¼øÂ÷ ¼ø¼­
¹Ýȯ°ª:
ÀÌ ÆÐÅÏÀÇ »õ·Î¿î Á¤±Ô Ç¥Çö ¿£Áø

flags

public int flags()
ÀÌ ÆÐÅÏÀÇ ¸ÅÄ¡ Ç÷¡±×¸¦ µ¹·ÁÁÝ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ ÆÐÅÏÀÌ ÄÄÆÄÀÏ µÇ¾úÀ» ¶§¿¡ ÁöÁ¤µÈ ¸ÅÄ¡ Ç÷¡±×

matches

public static boolean matches(String  regex,
                              CharSequence  input)
ÁöÁ¤µÈ Á¤±Ô Ç¥ÇöÀ» ÄÄÆÄÀÏ ÇØ, ÁöÁ¤µÈ ÀԷ°ú ±× Á¤±Ô Ç¥ÇöÀ» ¼º³É ÇÕ´Ï´Ù.

ÀÌ ¸Þ¼Òµå¸¦ ´ÙÀ½ÀÇ Çü½Ä¿¡¼­ È£ÃâÇϸé(ÀÚ), »ó±âÀÇ µ¿ÀÛÀ» ÇÕ´Ï´Ù.

 Pattern.matches(regex, input);
»ó±âÀÇ ¸Þ¼Òµå´Â ´ÙÀ½ÀÇ Ç¥Çö°ú °°°Ô µ¿ÀÛÇÕ´Ï´Ù.
 Pattern.compile(regex). matcher(input). matches()

ÆÐÅÏÀÌ ¹Ýº¹ÇØ »ç¿ëÇÏ´Â °æ¿ì´Â ±× ÆÐÅÏÀ» ÄÄÆÄÀÏ ÇØ ÀçÀÌ¿ëÇÑ (ºÐ)ÆíÀÌ, ¸Åȸ ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇßÀ» °æ¿ìº¸´Ù È¿À²ÀûÀÔ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
regex - ÄÄÆÄÀÏ µÇ´Â Ç¥Çö
input - ¸ÅÄ¡µÇ´Â ij¸¯ÅÍ ¼øÂ÷ ¼ø¼­
¿¹¿Ü:
PatternSyntaxException - Ç¥ÇöÀÇ ±¸¹®ÀÌ ¹«È¿ÀÎ °æ¿ì

split

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 - °á°úÀÇ ÇØ ±ÍÀÇÄ¡ (»ó±â´ë·Î)
¹Ýȯ°ª:
ij¸¯ÅÍ ¶óÀÎÀÇ ¹è¿­. ÀÌ ÆÐÅÏÀÇ ¼º³É¿¡ ±Ù°ÅÇØ ºÐÇÒµÈ ÀÔ·Â ¼øÂ÷ ¼ø¼­·ÎºÎÅÍ ÀÛ¼ºµÈ´Ù

split

public String [] split(CharSequence  input)
ÀÌ ÆÐÅÏÀÇ ¼º³É¿¡ ±Ù°ÅÇØ, ÁöÁ¤µÈ ÀÔ·Â ¼øÂ÷ ¼ø¼­¸¦ ºÐÇÒÇÕ´Ï´Ù.

ÀÌ ¸Þ¼Òµå´Â limit Àμö¸¦ Á¦·Î·Î ÇØ split ¸Þ¼Òµå¸¦ È£ÃâÇßÀ» °æ¿ì¿Í °°°Ô ÀÔ·Â ¼øÂ÷ ¼ø¼­¸¦ ºÐÇÒÇÕ´Ï´Ù. Áï, µ¹·ÁÁÖ¾îÁö´Â ¹è¿­¿¡´Â ÈļÓÀÇ ÇÏ´ÃÀÇ Ä³¸¯ÅÍ ¶óÀÎÀº Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù.

¿¹¸¦ µé¾î, ÀÔ·Â ¼øÂ÷ ¼ø¼­ "boo:and:foo" ´Â ÀÌ·¯ÇÑ Ç¥Çö¿¡ ÀÇÇØ ´ÙÀ½°ú °°ÀÌ ºÐÇҵ˴ϴÙ.

Á¤±Ô Ç¥Çö      °á°ú
: { "boo", "and", "foo" }
o { "b", "", ":and:f" }

ÆÄ¶ó¹ÌÅÍ:
input - ºÐÇҵǴ ij¸¯ÅÍ ¼øÂ÷ ¼ø¼­
¹Ýȯ°ª:
ij¸¯ÅÍ ¶óÀÎÀÇ ¹è¿­. ÀÌ ÆÐÅÏÀÇ ¼º³É¿¡ ±Ù°ÅÇØ ºÐÇÒµÈ ÀÔ·Â ¼øÂ÷ ¼ø¼­·ÎºÎÅÍ ÀÛ¼ºµÈ´Ù

JavaTM 2
Platform
Std.  Ed.  v1. 4.0

¹ö±×ÀÇ º¸°í¿Í ±â´ÉÀÇ ¸®Äù½ºÆ®
ÀÌ¿ÜÀÇ API ·¹ÆÛ·±½º ¹× °³¹ßÀÚ¿ë ¹®¼­¿¡ ´ëÇØ¼­´Â Java 2 SDK SE °³¹ßÀÚ¿ë ¹®¼­¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. °³¹ßÀÚÀü¿ëÀÇ »ó¼¼ÇÑ ÇØ¼³, °³³äÀÇ °³¿ä, ¿ë¾îÀÇ Á¤ÀÇ, ¹ö±×ÀÇ È¸ÇÇÃ¥, ¹× ÄÚµå ½Ç·Ê°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.

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.