|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | constructor¡¡ ¡¡ | ¸Þ¼µå | »ó¼¼: Çʵå | constructor¡¡ ¡¡ | ¸Þ¼µå |
java.lang.Objectjava.util.regex.Pattern
public final class Pattern
ÄÄÆÄÀÏ ³¡³ Á¤±Ô Ç¥ÇöÀÔ´Ï´Ù.
Á¤±Ô Ç¥ÇöÀº 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¿¡¼ÀÇ µ¿½Ã »ç¿ë¿¡ ´ëÀÀÇϰí ÀÖ½À´Ï´Ù.
Á¤±Ô Ç¥Çö ±¸¹®ÀÇ ¿ä¾à
±¸¹® | ¸ÅÄ¡ ´ë»ó |
---|---|
¹®ÀÚ | |
x | ¹®ÀÚ x |
\\ | backslash ¹®ÀÚ |
\0n | 8 Áø¼ö 0n¸¦ °¡Áö´Â ¹®ÀÚ (0 <= n <= 7) |
\0nn | 8 Áø¼ö 0nn¸¦ °¡Áö´Â ¹®ÀÚ (0 <= n <= 7) |
\0mnn | 8 Áø¼ö 0mnn¸¦ °¡Áö´Â ¹®ÀÚ (0 <= m <= 3, 0 <= n <= 7) |
\xhh | 16 Áø¼ö 0xhh¸¦ °¡Áö´Â ¹®ÀÚ |
\uhhhh | 16 Áø¼ö 0xhhhh¸¦ °¡Áö´Â ¹®ÀÚ |
\t | ÅÇ ¹®ÀÚ ('\u0009') |
\n | °³Çà ¹®ÀÚ ('\u000A') |
\r | ¿Õº¹´ë ¸®ÅÏ ¹®ÀÚ ('\u000D') |
\f | ¿ëÁö º¸³» ¹®ÀÚ ('\u000C') |
\a | °æ°í (º§) ¹®ÀÚ ('\u0007') |
\e | À̽ºÄÉÀÌÇÁ ¹®ÀÚ ('\u001B') |
\cx | x¿¡ ´ëÀÀÇÏ´Â Á¦¾î ¹®ÀÚ |
¹®ÀÚ Å¬·¡½º | |
[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] (°¨»ê) |
Á¤ÀÇ ³¡³ ¹®ÀÚ Å¬·¡½º | |
. | ÀÓÀÇÀÇ ¹®ÀÚ (ÁÙ ³¡ ±âÈ£¿Í ¼º³É ÇÏ´Â °æ¿ìµµ ÀÖ´Ù) |
\d | ¼ýÀÚ: [0-9] |
\D | ¼ýÀÚ ÀÌ¿Ü: [^0-9] |
\s | °ø¹é ¹®ÀÚ: [ \t\n\x0B\f\r] |
\S | ºñ°ø¹é ¹®ÀÚ: [^\s] |
\w | ´Ü¾î ±¸¼º ¹®ÀÚ: [a-zA-Z_0-9] |
\W | ºñ´Ü¾î ¹®ÀÚ: [^\w] |
POSIX ¹®ÀÚ Å¬·¡½º (US-ASCII ¸¶¼Å) | |
\p{Lower} | ¼Ò¹®ÀÚÀÇ ¿µ¹®ÀÚ: [a-z] |
\p{Upper} | ´ë¹®ÀÚÀÇ ¿µ¹®ÀÚ: [A-Z] |
\p{ASCII} | ¸ðµç ASCII ¹®ÀÚ: [\x00-\x7F] |
\p{Alpha} | ¿µ¹®ÀÚ: [\p{Lower}\p{Upper}] |
\p{Digit} | 10 Áø¼öÀÚ: [0-9] |
\p{Alnum} | ¿µ¼ýÀÚ: [\p{Alpha}\p{Digit}] |
\p{Punct} | ±¸µÎÁ¡ ¹®ÀÚ: ! "#$%&'()*+,-. /:;<=>? @[\]^_`{|}~ ¾ðÁ¨°¡ |
\p{Graph} | Ç¥½ÃÇÒ ¼ö ÀÖ´Â ¹®ÀÚ: [\p{Alnum}\p{Punct}] |
\p{Print} | ÇÁ¸°Æ® °¡´É ¹®ÀÚ: [\p{Graph}\x20] |
\p{Blank} | °ø¹é ¶Ç´Â ÅÇ: [ \t] |
\p{Cntrl} | Á¦¾î ¹®ÀÚ: [\x00-\x1F\x7F] |
\p{XDigit} | 16 Áø¼öÀÚ: [0-9a-fA-F] |
\p{Space} | °ø¹é ¹®ÀÚ: [ \t\n\x0B\f\r] |
java.lang.Character Ŭ·¡½º (´Ü¼øÇÑ java ¹®ÀÚ Å¸ÀÔ) | |
\p{javaLowerCase} | java.lang.Character.isLowerCase()¿Í µî°¡ |
\p{javaUpperCase} | java.lang.Character.isUpperCase()°ú µî°¡ |
\p{javaWhitespace} | java.lang.Character.isWhitespace()¿Í µî°¡ |
\p{javaMirrored} | java.lang.Character.isMirrored()¿Í µî°¡ |
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 ±îÁöÀÇ ¸ðµç ¹®ÀÚ¸¦ À̽ºÄÉÀÌÇÁ ÇÏ´Â |
\E | Á¤±Ô Ç¥ÇöÀº ¾Æ´ÏÁö¸¸, \Q·Î °³½ÃµÈ ÀοëÀ» À̽ºÄÉÀÌÇÁ ÇØ |
Ư¼öÇÑ ±¸¹® (»ó´ë¹æ ÂüÁ¶¸¦ ½Ç½ÃÇÏÁö ¾Ê´Â´Ù) | |
(? :X) | X, »ó´ë¹æ ÂüÁ¶¸¦ ½Ç½ÃÇÏÁö ¾Ê´Â Á¤±Ô Ç¥Çö ±×·ì |
(? idmsux-idmsux) | Á¤±Ô Ç¥ÇöÀº ¾Æ´ÏÁö¸¸, ¸ÅÄ¡ Ç÷¡±×ÀÇ ¿Â/¿ÀÇÁ¸¦ ¹Ù²Û´Ù |
(? idmsux-idmsux:X) | X, ÁöÁ¤µÈ Ç÷¡±×¸¦ ¿Â/¿ÀÇÁ·Î ÇÑ»ó´ë¹æ ÂüÁ¶¸¦ ½Ç½ÃÇÏÁö ¾Ê´Â Á¤±Ô Ç¥Çö ±×·ì |
(? =X) | X, ÆøÁ¦·ÎÀÇ ±àÁ¤ ¿¹Ãø |
(?!X) | X, ÆøÁ¦·ÎÀÇ ºÎÁ¤ ¿¹Ãø |
(? <=X) | X, ÆøÁ¦·ÎÀÇ ±àÁ¤ ÈÄ Àбâ |
(? <! X) | X, ÆøÁ¦·ÎÀÇ ºÎÁ¤ ÈÄ Àбâ |
(? >X) | X, µ¶¸³ÇÑ»ó´ë¹æ ÂüÁ¶¸¦ ½Ç½ÃÇÏÁö ¾Ê´Â Á¤±Ô Ç¥Çö ±×·ì |
backslash ¹®ÀÚ ('\')´Â Àü¼úÀÇ °Ñ(Ç¥)¿¡ Á¤Àǵǰí ÀÖ´Â ±¸¹®À» À̽ºÄÉÀÌÇÁ ÇÕ´Ï´Ù. ¶Ç, ÁöÁ¤ÇÏÁö ¾Ê¾Ò´ø °æ¿ì´Â À̽ºÄÉÀÌÇÁµÇ¾î ÀÖÁö ¾Ê´Ù°í ÇØ¼®µÇ´Â ij¸¯ÅÍ ¶óÀÎÀ» ÀοëÇÕ´Ï´Ù. ¿¹¸¦ µé¾î Á¤±Ô Ç¥Çö \\ Àº 1°³ÀÇ backslash¿Í ¼º³É ÇØ, \{´Â ¿ÞÂÊ °ýÈ£¿Í ¼º³É ÇÕ´Ï´Ù.
¿µ¹®ÀÚÀÇ Àü¿¡ backslash¸¦ »ç¿ëÇßÀ» ¶§¿¡ ±× ¿µ¹®ÀÚ°¡ À̽ºÄÉÀÌÇÁ ±¸¹®ÀÌ ¾Æ´Ñ °æ¿ì´Â ¿¡·¯°¡ µË´Ï´Ù. ÀÌ·¯ÇÑ ÆÐÅÏÀº Á¤±Ô Ç¥Çö ¾ð¾îÀÇ ÇâÈÄÀÇ È®Àå¿¡ ¿¹¾àµÇ°í ÀÖ½À´Ï´Ù. ¿µ¹®ÀÚ ÀÌ¿ÜÀÇ ¹®ÀÚÀÇ °æ¿ì´Â ±× ¹®ÀÚ°¡ À̽ºÄÉÀÌÇÁ ±¸¹®¿¡ Æ÷ÇÔµÉÁö ¾î¶³Áö¿¡ °ü°è¾øÀÌ, backslash¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Java ¾ð¾î »ç¾ç¿¡¼´Â Java ¿ø½Ã ÄÚµåÀÇ Ä³¸¯ÅÍ ¶óÀÎ ¸®ÅÍ·²¿¡ Æ÷ÇԵǴ backslash´Â Unicode À̽ºÄÉÀÌÇÁµîÀÇ ¹®ÀÚ À̽ºÄÉÀÌÇÁ·Î¼ À¯È¿ÇÏ´Ù¶ó°í ÇØ¼®µË´Ï´Ù. ÀÌ ¶§¹®¿¡
backslash°¡ Java ¹ÙÀÌÆ® ÄÚµå ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ ÇØ¼®µÇÁö ¾Ê°Ô ÇÏ·Á¸é,
Á¤±Ô Ç¥ÇöÀ» ³ªÅ¸³»´Â ij¸¯ÅÍ ¶óÀÎ ¸®ÅÍ·²³»¿¡¼ backslash¸¦ 2°³
°è¼ÓÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î
ij¸¯ÅÍ ¶óÀÎ ¸®ÅÍ·² "\b"´Â
Á¤±Ô Ç¥ÇöÀ̶ó°í ÇØ¼®µÇ¸é, ¹é ½ºÆäÀ̽º 1 ¹®ÀÚ¿Í ¼º³É µË´Ï´Ù. ±×·¯³ª, "\\b"´Â ´Ü¾î °æ°è¿Í ¼º³É µË´Ï´Ù. ¶Ç, ij¸¯ÅÍ ¶óÀÎ ¸®ÅÍ·² "\(hello\)" Àº ºÎ´çÇÏ°Ô µÇ¾î, ÄÄÆÄÀϽà ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù. ij¸¯ÅÍ ¶óÀÎ (hello) °ú ¼º³É µÇ·Á¸é,
ij¸¯ÅÍ ¶óÀÎ ¸®ÅÍ·² "\\(hello\\)"À» »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
¹®ÀÚ Å¬·¡½º´Â ´Ù¸¥ ¹®ÀÚ Å¬·¡½º³»·Î ÁöÁ¤Çϰųª °áÇÕ ¿¬»êÀÚ (¾Ï¹¬Àû)³ª ±³Â÷ ¿¬»êÀÚ (&&)¸¦ »ç¿ëÇØ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù
. °áÇÕ ¿¬»êÀÚ´Â 1°³
ÀÌ»óÀÇ ¿ÀÆÛ·£µå Ŭ·¡½º¿¡ Æ÷ÇԵǴ ¸ðµç ¹®ÀÚ¸¦ Æ÷ÇÔÇÑ Å¬·¡½º¸¦ ³ªÅ¸³À´Ï´Ù. ±³Â÷ ¿¬»êÀÚ´Â 2°³ÀÇ ¿ÀÆÛ·£µå Ŭ·¡½º¿¡ Æ÷ÇԵǴ ¸ðµç ¹®ÀÚ¸¦ Æ÷ÇÔÇÑ Å¬·¡½º¸¦ ³ªÅ¸³À´Ï´Ù.
¹®ÀÚ Å¬·¡½º ¿¬»êÀÚ´Â ´ÙÀ½ÀÇ ¼ø¼·Î ¿ì¼± ¼øÀ§°¡ ³ô¾ÆÁý´Ï´Ù.
½ÇÁ¦·Î´Â ´Ù¸¥ ¸ÞŸij¶óũŸ¼¼Æ®´Â ¹®ÀÚ Å¬·¡½ºÀÇ ¿ÜºÎ°¡ ¾Æ´Ï°í ³»ºÎ¿¡ Á¸ÀçÇÏ´Â °Í¿¡ À¯ÀÇÇØ ÁÖ¼¼¿ä. ¿¹¸¦ µé¾î
Á¤±Ô Ç¥Çö . ´Â
¹®ÀÚ Å¬·¡½º ³»ºÎ¿¡¼´Â ±× Ư¼öÇÑ
¹Ì¸¦ ÀÒ½À´Ï´Ù¸¸, Ç¥Çö - Àº ¹üÀ§¸¦ ³ªÅ¸³»´Â ¸ÞŸij¶óũŸ°¡ µË´Ï´Ù.
¡¸ÁÙ ³¡ ±âÈ£¡¹¶õ
ÀÔ·Â ¹®ÀÚ ¼ø¼ÀÇ ÇàÀÇ ¸»¹Ì¸¦ ÁöÁ¤ÇÒ °æ¿ì¿¡ »ç¿ëÇÏ´Â 1 ¹®ÀÚ ¶Ç´Â 2 ¹®ÀÚÀÇ ¹®ÀÚ ¼ø¼ÀÔ´Ï´Ù. ´ÙÀ½ÀÇ ¹®ÀÚ°¡ ÁÙ ³¡ ±âÈ£·Î¼ Àνĵ˴ϴÙ.
Á¤±Ô Ç¥Çö . ´Â
µðÆúÆ®¿¡¼´Â Á¤±Ô Ç¥Çö ^ ¹× $ ÇÏÇ฻ ±âÈ£¸¦ ¹«½ÃÇØ, ÀÔ·Â ¼ø¼ ÀüüÀÇ °¢°¢ ¼±µÎ¿Í ¸»¹ÌÀÎ ¸¸Å ¼º³É ÇÕ´Ï´Ù. »ó´ë¹æ ÂüÁ¶¸¦ ½Ç½ÃÇÏ´Â Á¤±Ô Ç¥Çö ±×·ì¿¡´Â ¿ÞÂÊ¿¡¼ ¿ìÃøÇâ¿¡ ¿ÞÂÊȯ°ýÈ£¸¦ ¼¼´Â °Í¿¡ÀÇÇØ ¹øÈ£¸¦ ºÙÀÏ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î
Ç¥Çö ((A)(B(C)))´Â
´ÙÀ½ÀÇ 4°³ÀÇ ±×·ìÀ¸·Î ºÐ·ùµË´Ï´Ù. ±×·ì 0 Àº Ç×»ó Ç¥Çö Àüü¸¦ ³ªÅ¸³À´Ï´Ù.
»ó´ë¹æ ÂüÁ¶¸¦ ½Ç½ÃÇÏ´Â Á¤±Ô Ç¥Çö ±×·ìÀÌ ÀÌ¿Í °°ÀÌ ºÐ·ùµÇ°í ³ª¼, ÀÔ·Â ¼ø¼ÀÇ °¢ ºÎºÐ ¼ø¼°¡ ÀÌ·¯ÇÑ ±×·ì°ú ¼º³É µÇ¾î ¼º³É ÇÒ ¶§¸¶´Ù ºÎºÐ ¼ø¼°¡ º¸Á¸µË´Ï´Ù. Á¤±Ô Ç¥Çö ±×·ìÀÇ ºÎºÐ ¼ø¼´Â Àü¹æ ÂüÁ¶·Î¼ Ç¥Çö³»¿¡¼ ³ªÁß¿¡ »ç¿ëÇÒ ¼ö ÀÖ°Ú½À´Ï´Ù. ¶Ç, ¸ÅÄ¡ Á¶ÀÛÀÌ ¿Ï·áÇϸé, Á¤±Ô Ç¥Çö ¿£ÁøÀ¸·ÎºÎÅÍ ²¨³¾ ¼öµµ ÀÖ½À´Ï´Ù.
±×·ì°ú ÀÔ·Â ¼ø¼°¡ ¼º³É µÇ¸é, ±× ±×·ì°ú ¸¶Áö¸·¿¡ ¼º³É ÇÑ ºÎºÐ ¼ø¼°¡ Ç×»ó »ó´ë¹æ ÂüÁ¶µË´Ï´Ù. ¼ö·®ÀÚ¸¦ ÁöÁ¤ÇßÀ» °æ¿ì´Â ±×·ìÀÌ Çѹø ´õ Æò°¡µË´Ï´Ù. 2¹øÂ°ÀÇ Æò°¡°¡ ½ÇÆÐÇßÀ» °æ¿ì¿¡¼µµ, ±× Àü¿¡ »ó´ë¹æ ÂüÁ¶µÈ °ªÀÌ ÀÖ´Â °æ¿ì´Â ±× °ªÀÌ º¸°ü À¯ÁöµË´Ï´Ù. ¿¹¸¦ µé¾î
ij¸¯ÅÍ ¶óÀÎ "aba"¸¦ Ç¥Çö (a(b)? )+ (¿Í)°ú ¼º³É ÇßÀ» °æ¿ì´Â ±×·ì 2 ·Î ¼³Á¤µÈ "b"°¡ º¸°ü À¯ÁöµË´Ï´Ù. »ó´ë¹æ ÂüÁ¶µÈ ¸ðµç ÀÔ·ÂÀº °¢ ¸Å°ªÀÌ ½ÃÀ۵DZâ Àü¿¡ ÆÄ±âµË´Ï´Ù.
(? ±×¸®°í ½ÃÀ۵Ǵ ±×·ìÀº ¼ø¼öÇÑ ¡¸»ó´ë¹æ ÂüÁ¶µÇÁö ¾Ê´Â Á¤±Ô Ç¥Çö¡¹±×·ì¿¡¼
ÅØ½ºÆ®¸¦ »ó´ë¹æ ÂüÁ¶ÇÏÁö ¾Ê°í, ±×·ì Àüü¿¡ Ä«¿îÆ® µÇÁö ¾Ê½À´Ï´Ù.
ÀÌ Å¬·¡½º´Â ¡¸Unicode Technical Standard #18: Unicode Regular Expression Guidelines¡¹ (Unicode Å×Å©´ÏÄà ½ºÅÄ´Ùµå No. 18: Unicode Á¤±Ô Ç¥Çö °¡ÀÌµå ¶óÀÎ) ¹×, ¸±¸®½º 2.1 ¡¸Canonical Equivalents¡¹ (Ç¥ÁØ µî°¡)À» ÂüÁ¶ÇϽʽÿÀ.
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 ¹®ÀÚÀÇ Ä«Å×°í¸®¸¦ ³ªÅ¸³À´Ï´Ù. ºí·Ï°ú Ä«Å×°í¸®´Â ¹®ÀÚ Å¬·¡½ºÀÇ ³»ºÎ ¹× ¿ÜºÎÀÇ ¾î´À ÂÊ¿¡µµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
Áö¿ø
µÇ°í ÀÖ´Â Ä«Å×°í¸®´Â methodname ¸Þ¼µå (ºñÃßõÀÇ ¸Þ¼µå¸¦ Á¦¿ÜÇÏ´Ù)ÀÎ java.lang.Character boolean¿Í
°°°Ô ±â´ÉÇÏ´Â Ä«Å×°í¸®´Â ÁöÁ¤µÈ ÇÁ·ÎÆÛƼ°¡ À̸§ javamethodname¸¦ °¡Áö´Â µ¿ÀÏÇÑ \p{prop} ±¸¹® Àüü·Î »ç¿ë °¡´ÉÇÕ´Ï´Ù.
ÀÌ Å¬·¡½º¿¡¼ Áö¿ø
µÇ¾î ÀÖÁö ¾ÊÀº Perl ±¸¹® Á¶°ÇºÎ ±¸¹® (? {X}) ¹× (? (Á¶°Ç)X|Y) ¸ÅÀÔ ÄÚµå ±¸¹® (? {ÄÚµå}) ¹× (??{ÄÚµå}) ¸ÅÀÔ ÄÚ¸àÆ® ±¸¹® (? #ÄÚ¸àÆ®) ÇÁ¸®ÇÁ·Î¼¼½º ¿¬»ê \l \u, \L, \U ÀÌ Å¬·¡½º¿¡¼ Áö¿ø
µÇ°í ÀÖÁö¸¸, Perl ·Î Áö¿ø
µÇ¾î ÀÖÁö ¾ÊÀº ±¸¹® Ž¿åÀÎ ¼ö·®ÀÚ. °¡´ÉÇÑ ÇÑ ±ä ij¸¯ÅÍ ¶óÀΰú ¼º³É ÇÑ´Ù. Å𺸠(¹é Æ®·°) Çϸé Á¤±Ô Ç¥Çö ÀüüÀÇ ¼º³ÉÀÌ ¼º°øÇÒ ¶§¿¡µµ, Å𺸠ÇÏÁö ¾Ê´Â´Ù ¹®ÀÚ Å¬·¡½ºÀÇ °áÇÕ°ú ±³Â÷ (Àü¼ú) Perl¿Í
ÀÇ Å« Â÷ÀÌÁ¡ Perl ¿¡¼´Â \1 ~ \9´Â Ç×»ó Àü¹æ ÂüÁ¶¶ó°í ÇØ¼®µÈ´Ù. 9¸¦ ³Ñ´Â ¼ýÀÚ°¡ backslash·Î À̽ºÄÉÀÌÇÁ µÇ°í ÀÖÀ» ¶§´Â ´ëÀÀÇÏ´Â ¼öÀÇ ºÎºÐ ÆÐÅÏÀÌ Á¸ÀçÇÏ´Â °æ¿ì, Àü¹æ ÂüÁ¶·Î °£ÁÖÇØÁø´Ù. Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â 8 Áø¼öÀÇ À̽ºÄÉÀÌÇÁ (°¡´ÉÇÑ °æ¿ì)·Î °£ÁÖÇØÁø´Ù. ÀÌ Å¬·¡½º¿¡¼´Â 8 Áø¼öÀÇ À̽ºÄÉÀÌÇÁ´Â Ç×»ó Á¦·Î·Î ½ÃÀ۵ȴÙ. \1 ~ \9´Â
Ç×»ó Àü¹æ ÂüÁ¶¶ó°í ÇØ¼®µÈ´Ù. ±×°Íº¸´Ù Å« ¼ýÀÚ´Â Á¤±Ô Ç¥ÇöÀÇ ±× °³¼Ò¿¡ ´ëÀÀÇÏ´Â ¼öÀÇ ºÎºÐ ÆÐÅÏÀÌ Á¸ÀçÇÏ´Â °æ¿ì´Â Àü¹æ ÂüÁ¶·Î °£ÁÖÇØÁø´Ù. Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â ±× ¼ýÀÚ°¡ ±âÁ¸ÀÇ ±×·ì ¹øÈ£ ÀÌÇϰ¡ µÇ´ÂÁö, 1 ÀÚ¸®¼öÀÇ ¼ýÀÚ°¡ µÉ ¶§±îÁö, ÀÚ¸®¼ö°¡ ÁÙ¿©Áø´Ù Perl ¿¡¼´Â ¸¶Áö¸· ¼º³ÉÀÌ Á¾·áÇÑ Àå¼Ò·ÎºÎÅÍ ¼º³ÉÀÇ Àç°³¸¦ ¿ä±¸ÇÒ ¶§´Â g Ç÷¡±×¸¦ »ç¿ëÇÑ´Ù. ÀÌ ±â´ÉÀº, Perl ¿¡¼´Â Ç¥ÇöÀÇ ÃÖ»óÁ¤µµ¿¡ ÆÄ¹¯Èù Ç÷¡±×°¡ Ç¥Çö Àüü¿¡ Àû¿ëµÈ´Ù. ÀÌ Å¬·¡½ºÀÇ ¸ÅÀÔ Ç÷¡±×´Â ÆÄ¹¯Èù Àå¼Ò¿¡ °ü°è¾øÀÌ, ±× °³¼Ò¿¡¼¸¸ À¯È¿ÇÏ°Ô µÈ´Ù. Ç÷¡±×°¡ ±×·ì³»¿¡ ÆÄ¹¯È÷°í ÀÖ´Â °æ¿ì´Â Perl¿Í
°°°Ô ±×·ìÀÇ ÃÖÈÄ·Î º¹¿øµÈ´Ù Perl ¿¡¼´Â Ç¥Çö *a µîÀÌ ºÎÁ¤ÇÑ ¸ÅÄ¡ ±¸¹®À̳ª Ç¥Çö abc] µîÀÇ ¸Å´Þ·Á °ýÈ£¸¦ Çã¿ë Çϰí ÀÖ¾î, ±×°ÍµéÀ» ¸®ÅÍ·²·Î °£ÁÖÇÑ´Ù. ÀÌ Å¬·¡½º¿¡¼µµ ¸Å´Þ·Á °ýÈ£´Â ¹Þ¾ÆµéÀÌÁö¸¸,+,?,
* µîÀÇ ¸Å´Þ·Á ¸ÞŸij¶óũŸ´Â Çã¿ë ÇÏÁö ¾Ê°í, ±×°ÍµéÀÌ ¹ß°ßµÇ¾úÀ» °æ¿ì´Â Á¤±Ô Ç¥Çö ±¸¹®ÀÇ µ¿ÀÛÀÇ »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â ¡¸Mastering Regular Expressions, 2nd Edition¡¹ (Jeffrey E. F. Friedl Àú, O'Reilly and Associates, 2002 ³â) À» ÂüÁ¶ÇϽʽÿÀ.
¹®ÀÚ Å¬·¡½º
1 ¸®ÅÍ·² À̽ºÄÉÀÌÇÁ \x 2 ±×·ìÈ [...] 3 ¹üÀ§ a-z 4 °áÇÕ [a-e][i-u] 5 ±³Â÷ [a-z&&[aeiou]] ÁÙ ³¡ ±âÈ£
UNIX_LINES
¸ðµå°¡ À¯È¿ÇÑ °æ¿ì´Â °³Çà ¹®ÀÚ¸¸ÀÌ ÁÙ ³¡ ±âÈ£·Î¼ Àνĵ˴ϴÙ.
DOTALL
Ç÷¡±×°¡ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì, ÁÙ ³¡ ±âÈ£ ÀÌ¿ÜÀÇ ¸ðµç ¹®ÀÚ¿Í ¼º³É ÇÕ´Ï´Ù.
MULTILINE
¸ðµå°¡ Ȱ¼ºÈ
µÇ¸é, ^´Â ÀÔ·ÂÀÇ ¼±µÎ ¹× ÀÔ·ÂÀÇ ¸»¹Ì¸¦ Á¦¿ÜÇÑ ¸ðµç ÁÙ ³¡ ±âÈ£ÀÇ ÈÄ¿¡ ¼º³É ÇÕ´Ï´Ù. MULTILINE
¸ðµåÀÇ °æ¿ì, $ ÇÏÇ฻ ±âÈ£ÀÇ Á÷Àü, ¶Ç´Â ÀÔ·Â ¼ø¼ÀÇ ¸»¹Ì¿¡ ¼º³É ÇÕ´Ï´Ù.
Á¤±Ô Ç¥Çö ±×·ì°ú »ó´ë¹æ ÂüÁ¶
1 ((A)(B(C))) 2 (A) 3 (B(C)) 4 (C) Unicode Áö¿ø
Character
Ŭ·¡½º¿¡¼ ÁöÁ¤µÈ ¹öÀüÀÇ The Unicode Standard¿¡ ±âÀçµÇ¾î ÀÖ½À´Ï´Ù. Ä«Å×°í¸®¸í¿¡ ´ëÇØ¼´Â Unicode Ç¥ÁØ¿¡ ±ÔÁذú Á¤º¸°¡ Á¤Àǵǰí ÀÖ½À´Ï´Ù. Pattern
Áö¿øÇÏ´Â ºí·Ï¸íÀº, UnicodeBlock.forName
¿¡ ÀÇÇØ ¹Þ¾Æµé¿©Á® Á¤ÀǵǴ À¯È¿ÇÑ ºí·Ï¸íÀÔ´Ï´Ù.
Perl 5 ¶ó´Â ºñ±³
Pattern
¿£ÁøÀº Perl 5 ·Î °°ÀÌ, Á¤·Ä µÈ ´ëü¿¡ ´ëÇÑ Á¾·¡ÀÇ NFA º£À̽ºÀÇ ¸ÅĪÀ» ½ÇÇàÇÕ´Ï´Ù.
Matcher
Ŭ·¡½º¿¡ ÀÇÇØ ¾Ï¹¬ÀûÀ¸·Î Á¦°øµÈ´Ù. find
¸Þ¼µå¸¦ ¹Ýº¹ÇØ È£ÃâÇϸé, Á¤±Ô Ç¥Çö ¿£ÁøÀÌ ¸®¼Â µÇÁö ¾Ê´Â ÇÑ, ¸¶Áö¸· ¼º³ÉÀÌ Á¾·áÇÑ Àå¼Ò·ÎºÎÅÍ ¸ÅÄ¡ Á¶ÀÛÀÌ Àç°³ÇÑ´Ù PatternSyntaxException
¸¦
Throw ÇÑ´Ù
String.split(String, int)
,
String.split(String)
,
Á÷·ÄÈ µÈ Çü½Ä
ÇÊµå °³¿ä | |
---|---|
static int |
CANON_EQ
Ç¥ÁØ µî°¡¸¦ À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù. |
static int |
CASE_INSENSITIVE
´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â ¸ÅĪÀ» À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù. |
static int |
COMMENTS
ÆÐÅϳ»¿¡¼ °ø¹é°ú ÄÚ¸àÆ®¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. |
static int |
DOTALL
DOTALL ¸ðµå¸¦ À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù. |
static int |
LITERAL
ÆÐÅÏÀÇ ¸®ÅÍ·² ±¸¹® ºÐ¼®À» À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù. |
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 ()
ÀÌ ÆÐÅÏÀÇ ÄÄÆÄÀÏ¿øÀÇ Á¤±Ô Ç¥ÇöÀ» ¸®ÅÏÇÕ´Ï´Ù. |
static String |
quote (String s)
ÁöÁ¤µÈ String
¸®ÅÍ·² ÆÐÅÏ String ¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
String [] |
split (CharSequence input)
ÀÌ ÆÐÅÏÀÇ ¼º³É¿¡ ±â¹ÝÇØ ÁöÁ¤µÈ ÀÔ·Â ¼ø¼¸¦ ºÐÇÒÇÕ´Ï´Ù. |
String [] |
split (CharSequence input,
int limit)
ÀÌ ÆÐÅÏÀÇ ¼º³É¿¡ ±â¹ÝÇØ ÁöÁ¤µÈ ÀÔ·Â ¼ø¼¸¦ ºÐÇÒÇÕ´Ï´Ù. |
String |
toString ()
ÀÌ ÆÐÅÏÀÇ Ä³¸¯ÅÍ ¶óÀΠǥÇöÀ» ¸®ÅÏÇÕ´Ï´Ù. |
Ŭ·¡½º java.lang. Object ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼µå |
---|
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
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 LITERAL
ÀÌ Ç÷¡±×°¡ °¡¸®Å°´Â °æ¿ì, ÆÐÅÏÀ» ÁöÁ¤ÇÏ´Â ÀԷ ij¸¯ÅÍ ¶óÀÎÀº ¸®ÅÍ·² ¹®ÀÚÀÇ ¼ø¼·Î¼ 󸮵˴ϴÙ. ÀÔ·Â ¼ø¼³»ÀÇ ¸ÞŸij¶óũŸ ¶Ç´Â escape sequence¿¡ Ưº°ÇÑ ¹Ì´Â ºÎ¿©µÇÁö ¾Ê½À´Ï´Ù.
CASE_INSENSITIVE ¹× UNICODE_CASE Ç÷¡±×¸¦ ÀÌ Ç÷¡±×¿Í ÇÔ²² »ç¿ëÇϸé, ¸ÅĪ¿¡ ´ëÇÑ ¿µÇâÀÌ À¯ÁöµË´Ï´Ù. ´Ù¸¥ Ç÷¡±×´Â ºÒÇÊ¿äÇÏ°Ô µË´Ï´Ù.
¸®ÅÍ·² ±¸¹® ºÐ¼®À» À¯È¿ÇϰÔÇϱâ À§ÇÑ ¸ÅÀÔ Ç÷¡±× ¹®ÀÚ´Â ¾ø½À´Ï´Ù.
public static final int DOTALL
DOTALL ¸ðµå¿¡¼´Â Ç¥Çö . ÇÏÇ฻ ±âÈ£¸¦ Æ÷ÇÔÇÑ ÀÓÀÇÀÇ ¹®ÀÚ¿¡ ¼º³É ÇÕ´Ï´Ù. µðÆúÆ®¿¡¼´Â ÀÌ Ç¥ÇöÀº ÁÙ ³¡ ±âÈ£¿¡ ¼º³É ÇÏÁö ¾Ê½À´Ï´Ù.
DOTALL ¸ðµå´Â ¸ÅÀÔ Ç÷¡±× Ç¥Çö (? s)¸¦ »ç¿ëÇØ À¯È¿ÇÏ°Ô ÇÒ ¼öµµ ÀÖ½À´Ï´Ù (s´Â ¡¸´ÜÀÏÇࡹ¸ðµåÀÇ Mnemonics¿¡¼ 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¸¯ÅÍ ¶óÀÎ "? "¿¡ ¼º³É ÇÕ´Ï´Ù. µðÆúÆ®ÀÇ ¸ÅĪ¿¡¼´Â Ç¥ÁØ µî°¡°¡ °í·ÁµÇÁö ¾Ê½À´Ï´Ù.
Ç¥ÁØ µî°¡¸¦ À¯È¿ÇϰÔÇϱâ À§ÇÑ ¸ÅÀÔ Ç÷¡±× ¹®ÀÚ´Â ¾ø½À´Ï´Ù.
ÀÌ Ç÷¡±×¸¦ ÁöÁ¤Çϸé, ÆÛÆ÷¸Õ½º°¡ ÀúÇÏÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.
¸Þ¼µåÀÇ »ó¼¼ |
---|
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 String toString()
ÀÌ ÆÐÅÏÀÇ Ä³¸¯ÅÍ ¶óÀΠǥÇöÀ» ¸®ÅÏÇÕ´Ï´Ù. À̰ÍÀº ÀÌ ÆÐÅÏÀÇ ÄÄÆÄÀÏ¿øÀÇ Á¤±Ô Ç¥ÇöÀÔ´Ï´Ù.
Object
³»ÀÇ toString
public Matcher matcher(CharSequence input)
input
- ¸ÅÄ¡µÇ´Â ¹®ÀÚ ¼ø¼
public int flags()
public static boolean matches(String regex, CharSequence input)
ÀÌ ¸Þ¼µå¸¦ ´ÙÀ½ÀÇ Çü½Ä¿¡¼ È£ÃâÇϸé, »ó±âÀÇ µ¿ÀÛÀ» ÇÕ´Ï´Ù.
»ó±âÀÇ ¸Þ¼µå´Â ´ÙÀ½ÀÇ Ç¥Çö°ú °°°Ô µ¿ÀÛÇÕ´Ï´Ù.Pattern.matches(regex, input);
Pattern.compile(regex). matcher(input). matches()
ÆÐÅÏÀ» ¹Ýº¹ÇØ »ç¿ëÇÏ´Â °æ¿ì´Â ±× ÆÐÅÏÀ» ÄÄÆÄÀÏÀÇÇØ ÀçÀÌ¿ëÇÑ (ºÐ)ÆíÀÌ, ¸Åȸ ÀÌ ¸Þ¼µå¸¦ È£ÃâÇÏ´Â °Íº¸´Ùµµ È¿À²ÀûÀÔ´Ï´Ù.
regex
- ÄÄÆÄÀÏ µÇ´Â Ç¥Çöinput
- ¸ÅÄ¡µÇ´Â ¹®ÀÚ ¼ø¼
PatternSyntaxException
- Ç¥ÇöÀÇ ±¸¹®ÀÌ ¹«È¿ÀÎ °æ¿ìpublic String [] split(CharSequence input, int limit)
ÀÌ ¸Þ¼µå·ÎºÎÅÍ ¸®ÅÏµÈ ¹è¿Àº ÀÔ·Â ¼ø¼ÀÇ ºÎºÐ ij¸¯ÅÍ ¶óÀÎÀ¸·Î ±¸¼ºµË´Ï´Ù. ÀÌ·¯ÇÑ ºÎºÐ ij¸¯ÅÍ ¶óÀÎÀº ÀÌ ÆÐÅϰú ¼º³É ÇÏ´Â ´Ù¸¥ ºÎºÐ ¼ø¼¿¡ ÀÇÇØ ºÐÇÒµÈ Ä³¸¯ÅÍ ¶óÀÎÀΰ¡ ÀÔ·Â ¼ø¼ÀÇ Á¾·á¿¡ ÀÇÇØ ºÐÇÒµÈ Ä³¸¯ÅÍ ¶óÀÎÀÔ´Ï´Ù. ¹è¿³»ÀÇ ºÎºÐ ij¸¯ÅÍ ¶óÀÎÀº ÀÔ·Â ¼ø¼³»¿¡¼ ¹ß»ýÇÑ Â÷·Ê·Î ÁÙÁö¾î ÀÖ½À´Ï´Ù. ÀÌ ÆÐÅÏÀÌ ÀÔ·Â ¼ø¼ÀÇ ºÎºÐ ¼ø¼¿¡ ¼º³É ÇÏÁö ¾Ê´Â °æ¿ì, ¸®ÅÏµÈ ¹è¿Àº 1°³ÀÇ ¿ä¼Ò, Áï ij¸¯ÅÍ ¶óÀÎ Çü½ÄÀÇ ÀÔ·Â ¼ø¼¸¸À¸·Î ±¸¼ºµË´Ï´Ù.
limit ÆÄ¶ó¹ÌÅÍ´Â ÀÌ ÆÐÅÏÀÇ Àû¿ë ȸ¼ö, Áï, ¸®ÅÏµÈ ¹è¿ÀÇ ±æÀ̸¦ Á¦¾îÇÕ´Ï´Ù. Á¦ÇÑ n°¡ Á¦·Îº¸´Ù Å« °æ¿ì, ÀÌ ÆÐÅÏÀº n - 1ȸ¾Æ·¡ÀÇ È¸¼ö°¡ Àû¿ëµÇ¾î ¹è¿ÀÇ ±æÀÌ´Â n ÀÌÇϰ¡ µË´Ï´Ù. ¹è¿ÀÇ ¸¶Áö¸· ¿£Æ®¸®¿¡´Â ¸¶Áö¸·¿¡ ¼º³É ÇÑ ´Ü¶ô ¹®ÀÚ ÀÌÈÄÀÇ ÀÔ·Â ¼ø¼°¡ ¸ðµÎ Æ÷ÇԵ˴ϴÙ. n°¡ À߸øµÈ °ª ÀÇ °æ¿ì, ÀÌ ÆÐÅÏÀÇ Àû¿ë ȸ¼ö¿Í ¹è¿ÀÇ ±æÀÌ´Â Á¦ÇѵÇÁö ¾Ê½À´Ï´Ù. n°¡ Á¦·ÎÀÇ °æ¿ì, ÀÌ ÆÐÅÏÀÇ Àû¿ë ȸ¼ö¿Í ¹è¿ÀÇ ±æÀÌ´Â Á¦Çѵ˴ϴٸ¸, ÈļÓÀÇ ºñ¾îÀִ ij¸¯ÅÍ ¶óÀÎÀº ÆÄ±âµË´Ï´Ù.
¿¹¸¦ µé¾î ÀÔ·Â ¼ø¼ "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
- ºÐÇҵǴ ¹®ÀÚ ¼ø¼limit
- °á°úÀÇÀÇÇØ ±ÍÀÇÄ¡ (Àü¼ú´ë·Î)
public String [] split(CharSequence input)
ÀÌ ¸Þ¼µå´Â limit Àμö¸¦ Á¦·Î·ÎÀÇÇØ split
¸Þ¼µå¸¦ È£ÃâÇßÀ» °æ¿ì¿Í °°°Ô ÀÔ·Â ¼ø¼¸¦ ºÐÇÒÇÕ´Ï´Ù. Áï, ¸®ÅϵÈ
¹è¿¿¡´Â ÈļÓÀÇ ºñ¾îÀִ ij¸¯ÅÍ ¶óÀÎÀº Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù.
¿¹¸¦ µé¾î ÀÔ·Â ¼ø¼ "boo:and:foo"´Â ÀÌ·¯ÇÑ Ç¥Çö¿¡ ÀÇÇØ ´ÙÀ½°ú °°ÀÌ ºÐÇҵ˴ϴÙ.
Á¤±Ô Ç¥Çö
°á°ú
: { "boo", "and", "foo" } o { "b", "", ":and:f" }
input
- ºÐÇҵǴ ¹®ÀÚ ¼ø¼
public static String quote(String s)
String
¸®ÅÍ·² ÆÐÅÏ String
¸¦ ¸®ÅÏÇÕ´Ï´Ù.
ÀÌ ¸Þ¼µå´Â ¸®ÅÍ·² ÆÐÅÏÀÎ°Í °°ÀÌ Ä³¸¯ÅÍ ¶óÀÎ s
¿¡ ¼º³É ÇÏ´Â Pattern
ÀÛ¼º¿¡ »ç¿ë °¡´ÉÇÑ String
¸¦ »ý¼ºÇÕ´Ï´Ù.
s
- ¸®ÅÍ·²ÈÇϴ ij¸¯ÅÍ ¶óÀÎ
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | constructor¡¡ ¡¡ | ¸Þ¼µå | »ó¼¼: Çʵå | constructor¡¡ ¡¡ | ¸Þ¼µå |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.