[[pagelist(^ì •ê·œí‘œí˜„ì‹/*)]] [[tableofcontents]] == ì´ìŠ¤ì¼€ì´í”„ 다시 살펴보기(ìƒí˜¸) == == ê³µë°±ë¬¸ìž ì°¾ê¸°(í™ê¸°) == == íŠ¹ì •í•œ ë¬¸ìž í˜•íƒœì™€ ì¼ì¹˜ 시키기(준ì„) == ìžì£¼ì“°ëŠ” ë¬¸ìž ì§‘í•©ë“¤ì€ íŠ¹ìˆ˜í•œ 메타 문ìžë¡œ ëŒ€ì‹ í•˜ì—¬ ì°¾ê¸°ë„ í•œë‹¤. ì´ëŸ° 메타 문ìžë“¤ì„ ë¬¸ìž í´ëž˜ìŠ¤(classes of characters)ë¼ê³ 부른다. {{{[0-9]}}} = {{{[0123456789]}}} 와 ê°™ì€ê±¸ 알것ì´ë‹¤. ì´ê²ƒì„ {{{[0-9]}}} 보다 ë” íŽ¸í•œê²Œ ì°¾ìœ¼ë ¤ë©´ '\d'ë¡œ ì°¾ì„수 ìžˆê³ ì œì™¸í•˜ê³ ì°¾ê¸°ëŠ” '\D'ë¡œ {{{[^0-9]}}}를 ëŒ€ì‹ í• ìˆ˜ 있다. 위와 ë³´ë©´ 깨달ì„수 있다시피 ì •ê·œ 표현 ë¬¸ë²•ì€ ëŒ€ì†Œë¬¸ìžë¥¼ 구별하며 소문ìžì™€ 대문ìžë¥¼ 서로 ë°˜ëŒ€ìž„ì„ ëœ»í•œë‹¤. '\w'는 ì˜ë¬¸ìžì™€ 숫ìžë¥¼ í¬í•¨í•˜ë©° '\W'는 ì˜ë¬¸ìžì™€ 숫ìžë¥¼ ì œì™¸í•œê²ƒì„ ì°¾ëŠ”ê²ƒì´ë‹¤. ê·¸ê²ƒì€ ë‹¤ìŒì˜ 예문으로 본보기로 í• ê²ƒì´ë‹¤. === 예문 === 11213 A1C2E3 48075 48237 M1B4F2 90046 H1H2H2 ----- ì •ê·œ í‘œí˜„ì‹ \w\d\w\d\w\d ----- 11213 {{{ A1C2E3 }}} 48075 48237 {{{ M1B4F2 }}} 90046 {{{ H1H2H2 }}} ---------- ìœ„ì˜ ì˜ˆë¬¸ì—서는 ì •ê·œí‘œí˜„ì‹ì´ 숫ìžë¡œë§Œì´ ì´ë£¨ì–´ì§„ê²ƒë„ ì°¾ì„수 있어야하지만 찾지 못하는걸 볼수있다. ê·¸ ì´ìœ 는 ... ì±…ì— ì •í™•ížˆ 안 나왔다. 추후 ì°¾ì•„ë³´ê² ë‹¤. ì´ ì˜ˆì œ ë§ê³ 는 '\s' ëª¨ë“ ê³µë°±ë¬¸ìž '\S' ëª¨ë“ ê³µë°±ë¬¸ìžë¥¼ ì œì™¸ '\c' 는 ëª¨ë“ ì œì–´ë¬¸ìž '\C' ëª¨ë“ ì œì–´ë¬¸ìžë¥¼ ì œì™¸ 16진수 표현 ë° ì‚¬ìš© '\x'를 붙여 10진수 10ì€ '\x0A'ë¡œ í‘œí˜„í• ìˆ˜ 있다. ì´ ë¬¸ìžë¥¼ 사용한다면 '\n'ê³¼ ê¸°ëŠ¥ì´ ê°™ë‹¤ 8진수 표현 ë° ì‚¬ìš© '\0'ì„ ë¶™ì—¬ 사용한다. '\011'ì€ '\t'ê³¼ ê°™ê³ ê·¸ë ‡ê²Œ 사용 í• ìˆ˜ìžˆë‹¤. * ì´ì™€ ê°™ì€ ê¸°ëŠ¥ì„ ì‚¬ìš©í•˜ì—¬ ì •ê·œí‘œí˜„ì‹ì„ ë”ìš± 간결하게 만들수 ìžˆì„ ê²ƒì´ë‹¤. == í¬ì§ìŠ¤ ë¬¸ìž ë¶„ë¥˜ 사용하기 == * ìžë°”스í¬ë¦½íŠ¸ëŠ” í¬ì§ìŠ¤ ë¬¸ìž í´ëž˜ìŠ¤ë¥¼ 지ì›í•˜ì§€ 않는다. === í¬ì§ìŠ¤ ë¬¸ìž ë¶„ë¥˜í‘œ === ||{{{[:alnum:]}}} ||{{{[a-zA-Z0-9]}}} || ||{{{[:alpha:]}}} ||{{{[a-zA-Z]}}} || ||{{{[:blank:]}}} ||빈칸ì´ë‚˜ {{{[\t]}}}와 같다. || ||{{{[:cntrl:]}}} ||아스키 ì œì–´ë¬¸ìž. 0-31, 127번 || ||{{{[:digit:]}}} ||{{{[0-9]}}} || ||{{{[:graph:]}}} ||{{{[:print:]}}}와 ë™ì¼í•˜ë‚˜ ë¹ˆì¹¸ì œì™¸ || ||{{{[:lower:]}}} ||{{{[a-z]}}} || ||{{{[:print:]}}} ||ì¶œë ¥ê°€ëŠ¥í•œ ëª¨ë“ ë¬¸ìž || ||{{{[:punct:]}}} ||{{{[:alnum:]ì´ë‚˜ {{{[:cntrl:]}}}ê°€ í¬í•¨ë˜ì§€ ì•Šì€ ëª¨ë“ ë¬¸ìž || ||{{{[:space:]}}} ||ë¹ˆì¹¸ì„ í¬í•¨í•œ ëª¨ë“ ê³µë°±ë¬¸ìž {{{[\f\n\r\t\v]}}} || ||{{{[:upper:]}}} ||{{{[A-Z]}}} || ||{{{[:xdigit:]}}} ||ëª¨ë“ 16진수 ìˆ«ìž {{{[a-fA-F0-9]}}}와 같다 || === 예 === * HRGB 코드 ê°’ 찾기 * {{{#[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]}}} * 주ì˜í• ì ì€ ëŒ€ê´„í˜¸ê°€ ë‘번 들어간다. posix í‘œí˜„ì€ [:xdigit:] ì´ê¸° ë•Œë¬¸ì— ë¬¸ìžì§‘í•©ì„ ì •ì˜í•˜ë ¤ë©´ 대괄호를 한번 ë” ì¨ì¤˜ì•¼ 한다. == ì •ë¦¬í•´ë³´ìž == * 문ìžì™€ ë¬¸ìž ì§‘í•©ìœ¼ë¡œ 찾는 기본 ë‚´ìš©ì€ 2장과 3장ì—ì„œ ëª¨ë‘ ë°°ì› ê³ , ì´ ìž¥ì—서는 íŠ¹ì • 문ìžë‚˜ ì „ì²´ 집합 í˜¹ì€ ë¬¸ìž í´ëž˜ìŠ¤ì™€ ì¼ì¹˜í•˜ëŠ” 메타 문ìžë¥¼ 소개했다. ì´ë ‡ê²Œ 메타 문ìžì™€ í¬ì§ìŠ¤ í´ëž˜ìŠ¤ëŠ” ì •ê·œ í‘œí˜„ì‹ íŒ¨í„´ì„ ë‹¨ìˆœí•˜ê²Œ ë§Œë“ ë‹¤.