ȸ¿ø°¡ÀԡžÆÀ̵ð/ºñ¹øã±â
ȨÀ¸·Î


PHP¿¡¼­ Ư¼ö¹®ÀÚ ¾ø¾Ö´Â Á¤±ÔÇ¥Çö½Ä
11³â Àü

¾Æ·¡¿Í °°ÀÌ Àû¿ëÇÏ¸é ±âº»ÀûÀΠƯ¼ö¹®ÀÚ¸¦ Á¦°ÅÇϽǼö ÀÖ½À´Ï´Ù.



$string = preg_replace ("/[ #\&\+\-%@=\/\\\:;,\.'\"\^`~\_|\!\?\*$#<>()\[\]\{\}]/i", "",  $string);



^ : óÀ½¿¡ ¹Ù·Î µÚÀÇ ¹®ÀÚ¿­·Î ½ÃÀÛ  ereg("^abcd",$str) ex. abcdef , abcdgggg


$ : ¸¶Áö¸·¿¡ ¹Ù·Î ¾ÕÀÇ ¹®ÀÚ¿­·Î ³¡ ereg("abcd$",$str) ex. parkabcd , adjiabcd  


. : ÀÓÀÇÀÇ ÇÑ ¹®ÀÚ. ereg("a.d",$str) ex. acd , afd , psafd , fswapd


? : ¾ø°Å³ª ÇϳªÀÎ ¹®ÀÚ ereg("ab?c",$str) ex. c , abc


+ : ÃÖ¼ÒÇÑ ÇϳªÀÌ»óÀÎ ¹®ÀÚ ereg("ab+c",$str) ex. abc , ababc , abababc


* : ¾ø°Å³ª ±× ÀÌ»óÀÎ ¹®ÀÚ ereg("ab*c",$str) ex. c , abc , ababc


{} : °³¼ö  ereg("a{3,7}c",$str) ex. a°¡ 3°³¿¡¼­ 7°³ »çÀÌ


[] : [ ] ¾ÈÀÇ ¹®ÀÚ¿­ Áß¿¡¼­ Çϳª. ereg("a[bcd]",$str) ex. ab , ac , ad  


[^] : [^¹®ÀÚ]¸¦ Á¦¿ÜÇÑ ³ª¸ÓÁö a[^0-9] a ´ÙÀ½¿¡ ¼ýÀÚ¸¦ Á¦¿ÜÇÑ ¹®ÀÚÀ̸é true


() : ±×·ìÈ­. ( ) ¾ÈÀÇ ¹®ÀÚ¸¦ ±×·ìÈ­ ereg("ab(cd){2}e",$str) ex. abcdcde


[[:alpha:]] : ¾ËÆĺª¹®ÀÚÁß Çϳª. [a-zA-Z] ¿Í µ¿ÀÏ


[[:digit:]] : ¼ýÀÚ [0-9] ¿Í µ¿ÀÏ


[[:alnum:]] : ¸ðµç ¼ýÀÚ¿Í ¹®ÀÚ [a-zA-Z0-9] ¿Í µ¿ÀÏ


[[:space:]] : °ø¹é¹®ÀÚ


  
- eregi("ãÀ» ´Ü¾î" , "¹®ÀÚ¿­") ãÀ» ´Ü¾î°¡ ÀÖÀ¸¸é true , ¾øÀ¸¸é false


- eregi_replace("ãÀ»´Ü¾î" , "¹Ù²Ü¹®ÀÚ¿­" , ¹®ÀÚ¿­);





Ư¼ö¹®ÀÚ¸¦ Á¦°ÅÇÏ´Â °ÍÀº JSP ¶Ç´Â PHP µîÀ¸·Î À¥¼­¹ö´Ü¿¡¼­ ó¸®ÇÒ ¼öµµ ÀÖÀ¸¸ç, ¿©±â¿¡¼­ º¸¿©ÁÖ´Â °Í°ú °°ÀÌ °£´ÜÇÑ ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ È°¿ëÇÏ´Â ¹æ¹ýµµ ÀÖÀ» ¼ö ÀÖ´Ù. ¾Æ·¡ Java Script´Â ÀÔ·ÂµÈ ÁúÀÇ¿¡¼­ Ư¼ö¹®ÀÚ¸¦ Á¦°ÅÇÑ ÈÄ formÀ» submitÇϵµ·Ï ÇÑ´Ù.



<script language="JavaScript" type="text/JavaScript">
<!--
   function cleanQueryTerm( formName ) {
     var specialChars='~`!@#$%%^&*-=+\|[{]};:\',<.>/?';
     var str=formName.search_word.value;
     var i, j;
     if (str == '') {
       alert('No Input');
    return false;
     }
     for (i = 0; i < str.length; i++) {
       for (j = 0; j < specialChars.length; j++) {
         if (str.charAt(i) == specialChars.charAt(j))
        str = str.replace(str.charAt(i), " ");
       }
     }
     formName.search_word.value = str;
   }
-->
</script>

<form name="search_form" method="get" action = "clean_query.php"
       onSubmit='return cleanQueryTerm(document.search_form);'>
Query <input type="text" name="search_word">
<input type="submit" value="Search">
</form>


FORM ¹®¿¡¼­´Â onsubmit¿¡ cleanQueryTermÀ̶ó´Â ½ºÅ©¸³Æ®¸¦ À§¿Í °°ÀÌ ÁöÁ¤ÇÏ¿© »ç¿ëÇÏ¸é µÈ´Ù. ¶ÇÇÑ Á¦°ÅÇÒ Æ¯¼ö¹®ÀÚ¸¦ Ãß°¡Çϰųª »èÁ¦ÇÏ°íÀÚ ÇÏ´Â °æ¿ì¿¡´Â special characters (specialChar) º¯¼ö¸¦ º¯°æÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ´Ù.




1. Á¤±ÔÇ¥Çö½ÄÀ̶õ?



¾Æ¸¶ MS-DOS¸¦ Á¢Çغ» ºÐÀ̶ó¸é ¿ÍÀϵåÄ«µå(wildcard, À¯´Ð½º¿¡¼­´Â glob patternÀ̶ó°í ºÎ¸¥´Ù)À̶ó°í ºÎ¸£´Â *³ª ?¿Í °°Àº ±âÈ£¿¡ Àͼ÷ÇÒ °Ì´Ï´Ù. a·Î ½ÃÀÛÇÏ´Â ¸ðµç GIF ÆÄÀÏÀ» a*.gif¿Í °°ÀÌ ºñ½ÁÇÑ ÆÄÀϸíÀ» ÀÏÀÏÀÌ ¸í½ÃÇÏÁö ¾Ê°í ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. Á¤±ÔÇ¥Çö½Ä(regular express, ÁÙ¿©¼­ regexp, regex, re)µµ MS-DOSÀÇ *³ª ?¿Í °°ÀÌ ÆÐÅÏÀ» ±â¼úÇÏ´Â ¹æ½ÄÀÔ´Ï´Ù. ±×·¯³ª Á¤±ÔÇ¥Çö½ÄÀº MS-DOSÀÇ ¿ÍÀϵåÄ«µå¿Í´Â ´Þ¸® ÆÄÀÏ¸í »Ó¸¸ÀÌ ¾Æ´Ï¶ó ÆÄÀÏ ³»¿ëÀ» Æ÷ÇÔÇÑ ÀϹÝÀûÀÎ ¿ëµµ·Î »ç¿ëÀÌ °¡´ÉÇϸç, ±× ±â´Éµµ ´õ °­·ÂÇÕ´Ï´Ù.



À¯´Ð½º´Â ±âº»ÀûÀ¸·Î ±×·¡ÇȺ¸´Ù´Â ¹®ÀÚ ±â¹Ý ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇϱ⠶§¹®¿¡, ¹®ÀÚµéÀ» ã°Å³ª ´Ù¸¥ ¹®ÀÚ·Î ´ëüÇÏ´Â µµ±¸ÀÎ Á¤±ÔÇ¥Çö½ÄÀº ¸Å¿ì Áß¿äÇÕ´Ï´Ù. »ç½Ç, Á¤±ÔÇ¥Çö½ÄÀ» ¸ð¸£°í À¯´Ð½º¸¦ »ç¿ëÇÏ´Â °ÍÀÌ °¡´ÉÇÒ±î¶õ Àǹ®ÀÌ µé Á¤µµ·Î Á¤±ÔÇ¥Çö½ÄÀº À¯´Ð½º »ç¿ë°ú °ü¸®ÀÇ ¸¹Àº ºÎºÐ¿¡ Àû¿ëÀÌ °¡´ÉÇÕ´Ï´Ù. ¿ì¸®°¡ ÀÚÁÖ »ç¿ëÇÏ´Â ÆíÁý±âÀÎ vi¿Í emacs, ÀÚÁÖ »ç¿ëÇÏ´Â µµ±¸ÀÎ grep°ú sed¿Í awk, portable shell·Î ºÒ¸®´Â Perl, ÀÚµ¿À¸·Î ¸ÞÀÏÀ» Á¤¸®ÇÏ´Â procmail µî, Á¤±ÔÇ¥Çö½ÄÀº À¯´Ð½ºÀÇ °ÅÀÇ ¸ðµç µµ±¸¿Í °ü·ÃÀÌ ÀÖ½À´Ï´Ù. °³ÀÎÀûÀ¸·Î »À¾ÆÇ °æÇèµÚ¿¡ "¸ÛûÇÏ¸é ¼Õ¹ßÀÌ °í»ýÇÑ´Ù"´Â °Ý¾ð(?)ÀÇ ÀûÀýÇÑ ¿¹·Î Á¤±ÔÇ¥Çö½ÄÀ» ²Å½À´Ï´Ù.



ºÒÇàÈ÷µµ µµ±¸¸¶´Ù Á¤±ÔÇ¥Çö½ÄÀ» Áö¿øÇÏ´Â Á¤µµ°¡ Á¶±Ý Â÷ÀÌ°¡ ³ªÁö¸¸ ¸î¹ø ½ÃµµÇغ¸¸é ÀÌ Â÷À̸¦ ¾Ë ¼ö ÀÖ½À´Ï´Ù. ±×·¯¸é ±âº»ÀûÀÌ°í ±¤¹üÀ§ÇÏ°Ô ¾²ÀÌ´Â Á¤±ÔÇ¥Çö½ÄºÎÅÍ Çϳª¾¿ ¾Ë¾Æº¾½Ã´Ù.





2. Á¤±ÔÇ¥Çö½Ä ±âÃÊ




±âº»ÀûÀ¸·Î Á¤±ÔÇ¥Çö½ÄÀº ´ÙÀ½ ¼¼°¡Áö·Î ±¸º°ÇÒ ¼ö ÀÖ½À´Ï´Ù.


    ¹®ÀÚ¿¡ ÇØ´çµÇ´Â ºÎºÐ
    ¾ÕÀÇ ÇØ´çµÇ´Â ºÎºÐÀ» ¹Ýº¹ÇÏ´Â ºÎºÐ
    ¹®ÀÚ¿¡ ÇØ´çµÇÁö¾Ê°í À§Ä¡³ª °áÇÕÀ» ³ªÅ¸³»´Â ºÎºÐ



ÀÌÁ¦ MS-DOSÀÇ *¿Í °°ÀÌ Æ¯¼öÇÑ Àǹ̸¦ °¡Áö´Â ¹®ÀÚµéÀ» ¸¸³ª°Ô µË´Ï´Ù. ¿ì¸®°¡ Á¤±ÔÇ¥Çö½ÄÀ» ¹è¿î´Ù´Â °ÍÀº ÀÌ·± Ư¼ö ¹®ÀÚµé°ú ±×µéÀÇ Àǹ̸¦ ¾Æ´Â °ÍÀÔ´Ï´Ù.





2.1. ¹®ÀÚ¿¡ ÇØ´çµÇ´Â ºÎºÐ




¿ì¼± º¸Åë ¾ËÆĺª°ú ¼ýÀÚ µîÀº ±× ¹®ÀÚ ±×´ë·Î¸¦ ³ªÅ¸³À´Ï´Ù. ¹°·Ð ´ë¼Ò¹®ÀÚ´Â ¼­·Î ±¸º°µË´Ï´Ù.



$ egrep 'GNU' COPYING
                     GNU GENERAL PUBLIC LICENSE
freedom to share and change it.  By contrast, the GNU General Public
the GNU Library General Public License instead.)  You can apply it to
...(»ý·«)...
$



À§¿¡¼­ egrepÀº ÆÄÀϵ鿡¼­ ¿øÇÏ´Â ¹®ÀÚµéÀ» ã´Â µµ±¸ÀÔ´Ï´Ù. (ÈçÈ÷µé »ç¿ëÇÏ´Â grepÀÇ º¯Á¾À¸·Î grepº¸´Ù ´Ù¾çÇÑ Á¤±ÔÇ¥Çö½ÄÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.) ù¹ø° ¾Æ±Ô¸ÕÆ®·Î ¿øÇÏ´Â ¹®ÀÚ¸¦ ³ªÅ¸³»´Â Á¤±ÔÇ¥Çö½ÄÀ» »ç¿ëÇÕ´Ï´Ù. ¿©±â¼­ GNU´Â Á¤±ÔÇ¥Çö½ÄÀ¸·Î µÚ¿¡ ³ª¿À´Â ÆÄÀϵ鿡¼­ G, N, U ¼¼ ¹®ÀÚ°¡ ¿¬ÀÌ¾î ³ª¿À´Â °æ¿ì¸¦ ã½À´Ï´Ù. ¿©±â¼­ »ç¿ëÇÑ ÆÄÀÏÀÎ COPYINGÀº ÀÚÀ¯ ¼ÒÇÁÆ®¿þ¾î ¼Ò½ºÄڵ忡¼­ ½±°Ô ãÀ» ¼ö ÀÖ´Â GPL Á¶Ç×ÀÔ´Ï´Ù. °á°ú¸¦ ¸íÈ®ÇÏ°Ô Çϱâ À§Çؼ­ ãÀº ´Ü¾î¸¦ ±½°Ô Ç¥½ÃÇß½À´Ï´Ù.



±×·±µ¥ ¿Ö GNU ÁÖÀ§¿¡ µû¿ÈÇ¥¸¦ ÇßÀ»±î¿ä? ¿©±â¼­ µû¿ÈÇ¥´Â Á¤±ÔÇ¥Çö½Ä¿¡¼­ ¾²ÀÌ´Â *, ?, | µîÀÇ ¹®ÀÚµéÀÌ ½©¿¡¼­µµ Ưº°ÇÑ ±â´ÉÀ» Çϱ⶧¹®¿¡ ÀÌµé ¹®ÀÚ°¡ ½©¿¡¼­ 󸮵ÇÁö ¾Ê°ÔÇÏ·Á°í ÇÊ¿äÇÕ´Ï´Ù. ¶Ç, egrep 'modified work' COPYING¿Í °°ÀÌ Ã£À¸·Á´Â ÆÐÅÏ¿¡ °ø¹éÀÌ Æ÷ÇÔµÈ °æ¿ì¿¡µµ µû¿ÈÇ¥´Â À̵éÀ» ÇÑ°³ÀÇ ¾Æ±Ô¸ÕÆ®·Î ó¸®ÇÕ´Ï´Ù. »ç½Ç À§ÀÇ GNU¿¡ µû¿ÈÇ¥´Â ÇÊ¿ä¾øÁö¸¸, Ç×»ó ±ÔĢó·³ µû¿ÈÇ¥¸¦ °°ÀÌ »ç¿ëÇÏ´Â °ÍÀ» ±ÇÇÕ´Ï´Ù.



¾î¶² ƯÁ¤ÇÑ ¹®ÀÚ°¡ ¾Æ´Ï¶ó °¡´ÉÇÑ ¿©·¯ ¹®ÀÚµéÀ» ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.



$ egrep '[Tt]he' COPYING
   The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
software--to make sure the software is free for all its users.  This
...(»ý·«)...
$



À§¿¡¼­ [Tt]´Â ±× ÀÚ¸®¿¡ T³ª t°¡ ³ª¿Ã ¼ö ÀÖÀ½À» ÀǹÌÇÕ´Ï´Ù. ÀÌ·¸°Ô [¿Í ]¾È¿¡ °¡´ÉÇÑ ¹®ÀÚµéÀ» Àû¾îÁÙ ¼ö ÀÖ½À´Ï´Ù.



[a-z]¿Í °°ÀÌ [] ¾È¿¡ -¸¦ »ç¿ëÇÏ¿© ±× ¹üÀ§ ¾ÈÀÇ ¹®Àڵ鵵 ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, [a-zA-Z0-9]´Â ¿µ¹® ¾ËÆĺª ´ë¼Ò¹®ÀÚ¿Í ¼ýÀÚµéÀ» ¸ðµÎ Æ÷ÇÔÇÕ´Ï´Ù. ¶Ç, [^a-z]¿Í °°ÀÌ [] óÀ½¿¡ ^¸¦ »ç¿ëÇÏ¿© µÚ¿¡¼­ ÁöÁ¤µÈ ¹®ÀÚ ÀÌ¿ÜÀÇ ¹®ÀÚ¸¦ Áö½ÃÇÒ ¼öµµ ÀÖ½À´Ï´Ù. Áï, ÀÌ´Â ¿µ¹® ¾ËÆĺª ¼Ò¹®ÀÚ¸¦ Á¦¿ÜÇÑ ¹®ÀÚµéÀ» ÀǹÌÇÕ´Ï´Ù.



([a-z]¿¡¼­ ¹üÀ§´Â ASCII Äڵ尪À¸·Î a (97)¿¡¼­ z (122)±îÁö¸¦ ¶æÇÕ´Ï´Ù. ¸¸¾à [z-a]¿Í °°ÀÌ Å« °ªÀ» ¾Õ¿¡ ¾²¸é ¾ÈµË´Ï´Ù. ASCII Äڵ尪Àº man ascii·Î º¼ ¼ö ÀÖ½À´Ï´Ù.)



¸¶Áö¸·À¸·Î (º¸Åë Çà¹Ù²Þ ¹®ÀÚ¸¦ Á¦¿ÜÇÑ) ¾î¶² ¹®ÀÚ¿¡µµ ´ëÀÀµÇ´Â .ÀÌ ÀÖ½À´Ï´Ù. (MS-DOSÀÇ ?¿Í °°½À´Ï´Ù.)



$ egrep 'th..' COPYING
  of this license document, but changing it is not allowed.
freedom to share and change it.  By contrast, the GNU General Public
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
...(»ý·«)...
$



ÀÌ´Â th µÚ¿¡ µÎ ¹®ÀÚ°¡ ³ª¿À´Â °æ¿ì¸¦ ã½À´Ï´Ù. ¼¼¹ø° ÁÙ ³¡¿¡ This´Â ´ë¼Ò¹®ÀÚ¸¦ ±¸º°Çϱ⠶§¹®¿¡ ÆÐÅÏ¿¡ ÇØ´çµÇÁö¾Ê°í, the ¿¡¼­ °ø¹éµµ ÇÑ ¹®ÀÚ·Î Ãë±ÞÇÑ °ÍÀ» ÁÖÀÇÇÏ±æ ¹Ù¶ø´Ï´Ù. À§¿¡¼­ program will individually obtain patent licenses, in effect making the¿Í °°Àº ÁÙÀ» Ãâ·ÂÇÏÁö ¾ÊÀº ÀÌÀ¯´Â ¸¶Áö¸· the¿¡¼­ th¿Í ±× µÚÀÇ ÇÑ ¹®Àڴ ã¾ÒÁö¸¸ ±× µÚ¿¡ ¹®ÀÚ°¡ ÁÙ¹Ù²Þ ¹®ÀÚÀ̱⠶§¹®¿¡ Á¶°ÇÀÌ ¸¸Á·µÇÁö¾Ê±â ¶§¹®ÀÔ´Ï´Ù.





2.2. ¾ÕÀÇ ÇØ´çµÇ´Â ºÎºÐÀ» ¹Ýº¹ÇÏ´Â ºÎºÐ


¿©±â¼­´Â *, ?, +À» ´Ù·ì´Ï´Ù.



*´Â ¹Ù·Î ¾ÕÀÇ ¹®ÀÚ¸¦ 0¹ø ÀÌ»ó ¹Ýº¹Çصµ µÊÀ» ³ªÅ¸³À´Ï´Ù. ¿¹¸¦ µé¾î, abc*´Â


    abccccccccc
    abc
    ab



¸¦ ¸ðµÎ ¸¸Á·ÇÕ´Ï´Ù. ¿©±â¼­ ÁÖÀÇÇؼ­ º¼ °ÍÀº "0¹ø ÀÌ»ó"À̱⠶§¹®¿¡ ¸¶Áö¸· °æ¿ì¿Í °°ÀÌ ¾ÕÀÇ ¹®ÀÚ°¡ ¾È³ª¿Íµµ µÈ´Ù´Â °ÍÀÔ´Ï´Ù. (±×·¡¼­ MS-DOSÀÇ *Àº Á¤±ÔÇ¥Çö½ÄÀ¸·Î .*ÀÔ´Ï´Ù.)


*¿Í ºñ½ÁÇÏ°Ô, ?´Â ¾ÕÀÇ ¹®ÀÚ°¡ ¾ø°Å³ª Çϳª ÀÖ´Â °æ¿ì¸¦ ³ªÅ¸³»°í, +´Â ¾ÕÀÇ ¹®ÀÚ°¡ 1¹ø ÀÌ»ó ¹Ýº¹ÇÏ´Â °æ¿ì¸¦ ³ªÅ¸³À´Ï´Ù. ±×·¡¼­ a+´Â aa*¿Í °°½À´Ï´Ù.



ÀÌÁ¦ abc ¸ðµÎ¸¦ ¹Ýº¹ÇÏ°í ½Í´Ù¸é ¾î¶»°Ô ÇØ¾ß µÇ´ÂÁö Àǹ®ÀÌ µì´Ï´Ù. ÀÌ °æ¿ì (, ) °ýÈ£¸¦ »ç¿ëÇÏ¿© ¹®ÀÚµéÀ» ¹­¾îÁÖ¸é µË´Ï´Ù. ±×·¡¼­ (abc)*´Â


    abcabcabcabc
    abc


¸¦ ¸ðµÎ ¸¸Á·ÇÕ´Ï´Ù. ¸¶Áö¸· ¿¹´Â 0¹ø ¹Ýº¹ÇÑ °æ¿ì·Î ¾î¶² ¹®ÀÚµµ ¾ø´Â ºó °æ¿ìÀÔ´Ï´Ù. ÀÌÁ¦ ¾Õ¿¡¼­ ¸»ÇÑ "¾ÕÀÇ ¹®ÀÚ"¶ó´Â ¸»À» Á¤Á¤ÇØ¾ß °Ú½À´Ï´Ù. *, ?, +´Â "¾ÕÀÇ ¹®ÀÚ"¿¡ Àû¿ëµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó "¾ÕÀÇ ´ÜÀ§"¿¡ Àû¿ëµË´Ï´Ù. ±âº»ÀûÀ¸·Î ÇÑ ¹®ÀÚ´Â ±× ÀÚü·Î ÇÑ ´ÜÀ§ÀÔ´Ï´Ù. ±×·¡¼­ abc*¿¡¼­ *´Â ¹Ù·Î ¾Õ ¹®ÀÚÀÌÀÚ ´ÜÀ§ÀÎ c¿¡ Àû¿ëµÈ °ÍÀÔ´Ï´Ù. ±×·¯³ª °ýÈ£·Î ¹®ÀÚµéÀ» ¹­¾î¼­ ´ÜÀ§¸¦ ¸¸µé ¼ö ÀÖ°í, (abc)*ÀÇ °æ¿ì¿¡ *´Â ¾ÕÀÇ ´ÜÀ§ÀÎ abc¿¡ Àû¿ëµÈ °ÍÀÔ´Ï´Ù.




ÁÖÀÇ
--------------------------------------------------------------------------------------------




À§¿¡¼­ (abc)*°¡ 0¹ø ¹Ýº¹Çؼ­ ¾î¶² ¹®ÀÚµµ ¾ø´Â °ÍÀ» ³ªÅ¸³¾ ¼ö ÀÖÀ½À» ÁÖÀÇÇØ¾ß ÇÕ´Ï´Ù. Á¤±ÔÇ¥Çö½Ä¿¡¼­ ÀÌ·± °æ¿ì ´ë»ó°ú °ü°è¾øÀÌ ÆÐÅÏÀÌ ¸¸Á·ÇÑ °ÍÀ¸·Î ÆÇ´ÜÇϱ⠶§¹®¿¡ egrep '(abc)*' COPYING¿Í °°Àº ¸í·É¾î´Â COPYING¿¡ abc¶ó´Â ºÎºÐÀÌ ¾øÀ½¿¡µµ ºÒ±¸ÇÏ°í ¸ðµç ÁÙÀ» Ãâ·ÂÇÕ´Ï´Ù. Áï, egrep '(abc)*' COPYING | wc -l°ú wc -l COPYINGÀº °°½À´Ï´Ù.

¶Ç, ÁÖÀÇÇÒ Á¡Àº Á¤±ÔÇ¥Çö½ÄÀº ÆÐÅÏÀ» ¸¸Á·½ÃÅ°´Â °¡Àå ±ä ºÎºÐÀ» ã´Â´Ù´Â Á¡ÀÔ´Ï´Ù. Áï, abababab¿¡ ´ëÇÑ Á¤±ÔÇ¥Çö½Ä (ab)+´Â ab³ª abab¿¡ ´ëÀÀµÇÁö ¾Ê°í abababab ¸ðµÎ¿¡ ´ëÀÀµË´Ï´Ù. ÀÌ·± ÇൿÀº ¾î¶»°Ôº¸¸é ´ç¿¬ÇÑ °ÍÀÌÁö¸¸ ÁÖÀǸ¦ ÇÏÁö¾ÊÀ¸¸é ¹®Á¦°¡ »ý±æ ¼öµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, <B>compiler</B> and <B>interpreter<\B>¿¡ ´ëÇÑ Á¤±ÔÇ¥Çö½Ä <B>.*<\B>´Â (ÀǵµÇßÀ») <B>compiler</B>À» ãÁö¾Ê°í <B>compiler</B> and <B>interpreter<\B> Àüü¸¦ ã°Ô µË´Ï´Ù. À̸¦ ÇØ°áÇϱâ À§ÇØ <B>[^<]*<\B>À» »ç¿ëÇÕ´Ï´Ù. . ´ë½Å¿¡ [^<]¸¦ »ç¿ëÇÑ °Íó·³ ã´Â ´ë»óÀ» Á¦ÇÑÇϱâ À§Çؼ­ [^...] Çü½ÄÀ» ÀÚÁÖ »ç¿ëÇÕ´Ï´Ù.



--------------------------------------------------------------------------------------------





2.3. ¹®ÀÚ¿¡ ÇØ´çµÇÁö¾Ê°í À§Ä¡³ª °áÇÕÀ» ³ªÅ¸³»´Â ºÎºÐ


¿©±â¼­ ´Ù·ç´Â ^, $, |´Â ¾Õ¿¡¼­¿Í´Â ´Þ¸® ƯÁ¤ ¹®ÀÚ¿¡ ´ëÀÀÇÏÁö´Â ¾ÊÁö¸¸, À§Ä¡³ª °áÇÕÀÇ Áß¿äÇÑ ±â´ÉÀ» ÇÕ´Ï´Ù.



¿ì¼± ^´Â ÁÙÀÇ Ã³À½À» ¶æÇÕ´Ï´Ù.



$ egrep '^[Tt]he ' COPYING
the GNU Library General Public License instead.)  You can apply it to
the term "modification".)  Each licensee is addressed as "you".
the scope of this License.
The source code for a work means the preferred form of the work for
...(»ý·«)...
$



Á¤±ÔÇ¥Çö½ÄÀÇ ¸¶Áö¸· ¹®ÀÚ°¡ °ø¹éÀÓÀ» ÁÖÀÇÇÏ±æ ¹Ù¶ø´Ï´Ù. ¸¸¾à ÀÌ °ø¹éÀÌ ¾ø´Ù¸é These³ª themselves,·Î ½ÃÀÛÇÏ´Â Áٵ鵵 ã°ÔµË´Ï´Ù. ÀÌ·¸µí Á¤±ÔÇ¥Çö½ÄÀ» ÀûÀ» ¶§´Â ÀÚ½ÅÀÌ Ã£±æ ¿øÇÏ´Â ºÎºÐÀ» »©¸Ô°Å³ª, ÀÚ½ÅÀÌ ¿øÇÏ´Â ºÎºÐ ÀÌ¿ÜÀÇ °ÍÀ» Æ÷ÇÔÇÏÁö ¾Êµµ·Ï ÁÖÀÇÇØ¾ß ÇÕ´Ï´Ù. Áö±Ýó·³ Á¤±ÔÇ¥Çö½ÄÀ» ÀÔ·ÂÇÏ°í ±× °á°ú¸¦ Çϳª¾¿ »ìÆ캼¶§´Â ¹®Á¦°¡ ¾øÁö¸¸, ¸¹Àº °æ¿ì Á¤±ÔÇ¥Çö½ÄÀº ½ºÅ©¸³Æ®·Î ¸¹Àº ¹®¼­¸¦ ÇѲ¨¹ø¿¡ ó¸®ÇÒ¶§ »ç¿ëÇϱ⶧¹®¿¡ ÁÖÀÇÇØ¾ß ÇÕ´Ï´Ù. À߸ø ¾´ Á¤±ÔÇ¥Çö½Ä¶§¹®¿¡ ¿øÇÏ´Â °á°ú¸¦ ¾òÁö ¸øÇÏ´Â °ÍÀº ¹°·ÐÀÌ°í ¿øº»±îÁö ¸ÁÄ¡°Ô µÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.



^´Â ÀÌ·¸°Ô [Tt]¿Í °°ÀÌ Æ¯Á¤ ¹®ÀÚ¿¡ ´ëÀÀµÇÁö´Â ¾ÊÁö¸¸ ¿øÇÏ´Â ¹®ÀÚ°¡ ¼±ÅÃµÉ ¼ö ÀÖ°Ô µµ¿ÍÁÝ´Ï´Ù. ¹Ý´ë·Î, $´Â ÁÙÀÇ ³¡À» ³ªÅ¸³À´Ï´Ù. ±×·¡¼­ ^$°ú °°Àº Á¤±ÔÇ¥Çö½ÄÀº ºó ÁÙÀ» ã½À´Ï´Ù.



|Àº ±âÈ£ ¾ÕµÚÀÇ °Í Áß Çϳª¸¦ ¼±ÅÃÇÑ´Ù´Â ¶æÀÔ´Ï´Ù. Áï, ¹®¼­¿¡¼­ this(This)³ª that(That)À» ã´Â´Ù¸é,


    this|This|that|That
    [tT]his|[tT]hat
    [tT]his|hat - Ʋ¸²! ÀÌ Á¤±ÔÇ¥Çö½ÄÀº [tT]his³ª hatÀ» ãÀ½.
    [tT](his|hat)
    [tT]h(is|at)



¸ðµÎ °¡´ÉÇÕ´Ï´Ù. ¼¼¹ø°¿Í ³×¹ø° °æ¿ì¿¡¼­ °ýÈ£ÀÇ ±â´ÉÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.





2.4. ÀϹݹ®ÀÚ¿Í Æ¯¼ö¹®ÀÚ




¾Æ¸¶µµ Áö±ÝÂë ^ÀÌ µÎ°¡Áö Àǹ̷Π¾²Àδٴ °ÍÀÌ ÀÌ»óÇØ º¸ÀÏ ¼öµµ ÀÖÀ» °Ì´Ï´Ù. Á¤±ÔÇ¥Çö½Ä¿¡¼­ ¾²ÀÌ´Â ¹®ÀÚ´Â Å©°Ô ÀϹݹ®ÀÚ¿Í Æ¯¼ö¹®ÀÚ·Î ³ª´²º¼ ¼ö ÀÖ½À´Ï´Ù. ¿©±â¼­ Ư¼ö¹®ÀÚ¶õ ¾Õ¿¡¼­ ´Ù·é (¼ø¼­´ë·Î) [, ], -, ^, ., *, ?, +, (, ), $, |°ú °°ÀÌ Á¤±ÔÇ¥Çö½Ä¿¡¼­ ¹®ÀÚ±×´ë·ÎÀÇ Àǹ̷ΠÇؼ®µÇÁö ¾Ê´Â ¹®ÀÚµéÀÔ´Ï´Ù. ¹Ý´ë·Î Ư¼ö¹®ÀÚ°¡ ¾Æ´Ñ ¹®ÀÚ´Â ÀϹݹ®ÀÚ·Î G, N, U¿Í °°ÀÌ ¹®ÀÚ±×´ë·ÎÀÇ Àǹ̸¦ °¡Áý´Ï´Ù.



¿©±â¼­ Ư¼ö¹®ÀÚ´Â ¾²ÀÌ´Â °÷¿¡ µû¶ó ´Ù¸¨´Ï´Ù. ÀÚ¼¼È÷ ¸»Çϸé, []¾ÈÀÌ³Ä ¹ÛÀ̳Ŀ¡ µû¶ó Ư¼ö¹®ÀÚ°¡ ´Þ¶óÁý´Ï´Ù.



¿ì¼± [] ¹Û¿¡¼­´Â -¸¦ Á¦¿ÜÇÑ, ^, ., *, ?, +, (, ), $, |ÀÌ Æ¯¼ö¹®ÀÚÀÔ´Ï´Ù. ¿©±â¼­ ^´Â ÁÙÀÇ ½ÃÀÛÀ» ÀǹÌÇÕ´Ï´Ù.



±×·¯³ª [] ¾È¿¡¼­´Â -°ú ^¸¸ÀÌ Æ¯¼ö¹®ÀÚÀÌ°í, ´Ù¸¥ ¹®ÀÚµéÀº ÀϹݹ®ÀÚ°¡ µË´Ï´Ù. Áï, [*?+]´Â ¹Ýº¹ÀÌ ¾Æ´Ï¶ó ¹®ÀÚ±×´ë·Î *³ª ?³ª + Áß Çϳª¸¦ ¶æÇÕ´Ï´Ù. [] ¾È¿¡¼­ (Á¦ÀÏ ¾Õ¿¡ ³ª¿À´Â) ^´Â µÚ¿¡³ª¿À´Â Á¶°ÇÀ» ¸¸Á·ÇÏÁö ¾Ê´Â ¹®ÀÚ¸¦ ã´Â´Ù´Â Àǹ̰¡ µË´Ï´Ù.





2.5. Ư¼ö¹®ÀÚ¿¡ ÇØ´çÇÏ´Â ¹®ÀÚ »ç¿ëÇϱâ




±×·¸´Ù¸é ãÀ¸·Á´Â ºÎºÐ¿¡ Ư¼ö¹®ÀÚ°¡ Æ÷ÇÔµÇÀÖ´Ù¸é ¾î¶»°Ô ÇÒ±î¿ä? ¿¹¸¦ µé¾î what?À̶ó´Â ¹°À½Ç¥·Î ³¡³ª´Â ¹®ÀÚ¸¦ ã°í ½Í´Ù°í, egrep 'what?' ...À̶ó°í Çϸé ?ÀÌ Æ¯¼ö¹®ÀÚÀ̹ǷΠwha¸¦ Æ÷ÇÔÇÑ whaleµµ ã°Ô µË´Ï´Ù. ¶Ç, 3.14·Î ãÀ»¶§´Â 3+14 µîµµ ã°Ô µË´Ï´Ù.



Ư¼ö¹®ÀÚ°¡ [] ¾È°ú ¹Û¿¡¼­ ´Ù¸£´Ù´Â Á¡À» »ý°¢ÇÏ¿© °¢°¢ÀÇ °æ¿ì¸¦ »ìÆ캾½Ã´Ù. ¿ì¼± [] ¹ÛÀÇ °æ¿ì´Â,


    \À» Ư¼ö¹®ÀÚ ¾Õ¿¡ ºÙÀ̱â. ¿¹, what\?, 3\.14
    []À» »ç¿ëÇϱâ. ¿¹, what[?], 3[.]14



ù¹ø° ¹æ¹ýÀº º¸Åë escape¶ó°í ºÎ¸£¸ç, Ư¼ö¹®ÀÚ ¾Õ¿¡ \À» ºÙ¿©¼­ Ư¼ö¹®ÀÚÀÇ Æ¯¼öÇÑ ±â´ÉÀ» Á¦°ÅÇÕ´Ï´Ù. µÎ¹ø° ¹æ¹ýÀº [] ¹ÛÀÇ ¸¹Àº Ư¼ö¹®ÀÚµéÀÌ [] ¾È¿¡¼­´Â ÀϹݹ®ÀÚ°¡ µÇ´Â Á¡À» ÀÌ¿ëÇÑ °ÍÀÔ´Ï´Ù. º¸Åë ù¹ø° ¹æ¹ýÀ» ¸¹ÀÌ »ç¿ëÇÕ´Ï´Ù.

ÁÖÀÇÇÒ Á¡Àº ù¹ø° ¹æ¹ý¿¡¼­ »ç¿ëÇÏ´Â \°¡ µÚ¿¡ ³ª¿À´Â Ư¼ö¹®ÀÚ¸¦ ÀϹݹ®ÀÚ·Î ¸¸µå´Â Ư¼ö¹®ÀÚÀ̱⠶§¹®¿¡, ¹®ÀÚ ±×´ë·ÎÀÇ \À» ³ªÅ¸³»·Á¸é \\À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ¹°·Ð [\]µµ °¡´ÉÇÕ´Ï´Ù.



[] ¾ÈÀÇ Æ¯¼ö¹®ÀÚ´Â À§Ä¡¸¦ ¹Ù²ã¼­ ó¸®ÇÕ´Ï´Ù. ¸ÕÀú, ^´Â [^abc]¿Í °°ÀÌ Ã³À½¿¡ ³ª¿Í¾ß¸¸ Àǹ̰¡ ÀÖÀ¸¹Ç·Î [abc^]¿Í °°ÀÌ ´Ù¸¥ À§Ä¡¿¡ »ç¿ëÇÏ¸é µË´Ï´Ù. -´Â [a-z]¿Í °°ÀÌ µÎ ¹®ÀÚ »çÀÌ¿¡¼­¸¸ Àǹ̰¡ ÀÖÀ¸¹Ç·Î [-abc]³ª [abc-]¿Í °°ÀÌ Á¦ÀÏ Ã³À½À̳ª ¸¶Áö¸·¿¡ »ç¿ëÇÕ´Ï´Ù.



(grep°ú °°ÀÌ µµ±¸¿¡ µû¶ó ¿ªÀ¸·Î ÀÏ¹Ý ¹®ÀÚ¾Õ¿¡ \¸¦ ºÙ¿©¼­ Ư¼ö¹®ÀÚ¸¦ ¸¸µå´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ¾Æ·¡ °¢ µµ±¸¿¡ ´ëÇÑ ¼³¸í Âü°í.)





3. Á¤±ÔÇ¥Çö½Ä °í±Þ




°í±ÞÀ̶ó°í Á¦¸ñÀ» ºÙ¿´Áö¸¸ ¿©±â¼­´Â µµ±¸¸¶´Ù Â÷ÀÌ°¡ ³ª°Å³ª ¾øÀ» ¼öµµ ÀÖ´Â ³»¿ëÀ» ´Ù·ì´Ï´Ù.





3.1. ÀÚ¼¼ÇÑ ¹Ýº¹




¹Ýº¹Çϴ Ƚ¼ö¸¦ ÀÚ¼¼È÷ Á¶Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.


    {n} - Á¤È®È÷ n¹ø ¹Ýº¹. a{3}Àº aaa¿Í °°À½.
    {n,} - n¹ø ÀÌ»ó ¹Ýº¹. a{3,}Àº aaaa*¿Í °°À½.
    {n,m} - n¹ø ÀÌ»ó m¹ø ÀÌÇÏ ¹Ýº¹. a{2,4}´Â aaa?a?¿Í °°À½.



¹°·Ð (abc){2,4}°°ÀÌ °ýÈ£·Î ¹Ýº¹ÇÒ ´ÜÀ§¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿©±â¼­ {, }µµ *, ?, +¿Í °°ÀÌ Æ¯¼ö¹®ÀÚÀÓÀ» ÁÖÀÇÇÏ±æ ¹Ù¶ø´Ï´Ù. (¾ö¹ÐÇÑ Àǹ̿¡¼­ }Àº Ư¼ö¹®ÀÚ°¡ ¾Æ´Õ´Ï´Ù.)





3.2. ±â¾ïÇϱâ




¾Õ¿¡¼­ ¿©·¯ ¹®ÀÚ¸¦ ¹­¾î¼­ ´ÜÀ§·Î ¸¸µå´Â °ýÈ£´Â Á¤±ÔÇ¥Çö½ÄÀ¸·Î ãÀº ºÎºÐÀ» ±â¾ïÇÏ¿© ´Ù¸¥ °÷¿¡¼­ »ç¿ëÇÒ¶§µµ »ç¿ëÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, HTML Á¦¸ñ Å×±×´Â (egrep¿¡¼­) <[Hh]([1-6])>.*</[Hh]\1>¿Í °°ÀÌ Ã£À» ¼ö ÀÖ½À´Ï´Ù. ¿©±â¼­ ([1-6])ÀÇ (, )´Â »çÀÌ¿¡ ´ëÀÀµÈ ºÎºÐÀ» ±â¾ïÇÏ¿© (ù¹ø° ±â¾ïµÈ ³»¿ëÀ») \1¿¡¼­ »ç¿ëÇÕ´Ï´Ù. Áï, <H2>Conclusion</H2>¿¡¼­ </H2> ¿Ü¿¡ </H1>³ª </H3> µîÀº ¸¸Á·ÇÏÁö ¾Ê½À´Ï´Ù.



(...)Àº ¿©·¯¹ø »ç¿ëÇÒ ¼ö ÀÖ°í (½ÉÁö¾î °ãÃļ­µµ), \nÀº ±â¾ïµÈ n¹ø° ºÎºÐÀ» ÁöĪÇÕ´Ï´Ù. ¼ø¼­´Â ±â¾ïÀÌ ½ÃÀ۵Ǵ (ÀÇ ¼ø¼­ÀÔ´Ï´Ù.



¿©±â¿¡¼­´Â (°ú )ÀÌ Æ¯¼ö¹®ÀÚÀÌ°í, ±×³É \(¿Í \)´Â ÀϹݹ®ÀÚÀÌÁö¸¸, µµ±¸¿¡ µû¶ó ¹Ý´ëÀÎ °æ¿ìµµ ÀÖ½À´Ï´Ù.



ÀÌ ±â´ÉÀº ¶Ç ġȯ¿¡¼­ ÀÚÁÖ »ç¿ëµË´Ï´Ù. ¾Æ·¡ vi¿Í sed ºÎºÐÀ» Âü°íÇÏ±æ ¹Ù¶ø´Ï´Ù.





3.3. ´Ü¾î ã±â




¾Õ¿¡¼­ the¸¦ ãÀ¸¸é the ¿Ü¿¡ them µîµµ °°ÀÌ Ã£´Â °ÍÀ» º¸¾Ò½À´Ï´Ù. ±×·¯¸é Á¤°ü»ç the¸¸ ãÀ¸·Á¸é ¾î¶»°Ô ÇÒ±î¿ä?



°£´ÜÈ÷ Á¤±ÔÇ¥Çö½Ä ¾ÕµÚ¿¡ °ø¹éÀ» Ãß°¡ÇÑ  the ¸¦ »ý°¢ÇØ º¼ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ÀÌ Á¤±ÔÇ¥Çö½Ä¿¡´Â µÎ°¡Áö ¹®Á¦°¡ ÀÖ½À´Ï´Ù. ù¹ø°´Â ÅÇ(tab) µî ´Ù¸¥ °ø¹é¹®ÀÚ°¡ Àֱ⠶§¹®ÀÔ´Ï´Ù. µÎ¹ø°´Â ÀÌ Á¤±ÔÇ¥Çö½ÄÀ¸·Î the°¡ ÁÙ Á¦ÀÏ ¾ÕÀ̳ª Á¦ÀÏ µÚ¿¡ ³ª¿À´Â °æ¿ì´Â ãÁö ¸øÇϱ⠶§¹®ÀÔ´Ï´Ù. ¹°·Ð [], ^, $¿Í |¸¦ º¹ÀâÇÏ°Ô °áÇÕÇÏ¿© ÀÌµé °æ¿ì¸¦ ¸ðµÎ ó¸®ÇÒ ¼ö ÀÖ´Â Á¤±ÔÇ¥Çö½ÄÀ» ¾µ ¼ö ÀÖÁö¸¸, ÀÚÁÖ »ç¿ëÇϴ ǥÇöÀ̱⠶§¹®¿¡ °£´ÜÈ÷ ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¸¶·ÃµÇÀÖ½À´Ï´Ù.



±×°ÍÀº \<°ú \>·Î, \<Àº °ø¹é¿¡¼­ °ø¹éÀÌ ¾Æ´Ñ ¹®ÀÚ »çÀÌ, \>´Â °ø¹éÀÌ ¾Æ´Ñ ¹®ÀÚ¿¡¼­ °ø¹é »çÀÌÀÇ À§Ä¡¸¦ ³ªÅ¸³À´Ï´Ù. Áï, ^³ª $¿Í °°ÀÌ ¹®ÀÚ¿¡ ÇØ´çµÇÁö¾Ê°í À§Ä¡¸¸À» ³ªÅ¸³À´Ï´Ù. ÀÌÁ¦ ÇØ´äÀº \<the\>ÀÔ´Ï´Ù.





3.4. ´ÜÃà Ç¥Çöµé




Á¤±ÔÇ¥Çö½Ä¿¡´Â ÀÌ¿Ü¿¡µµ ÀÚÁÖ »ç¿ëµÇ´Â Ç¥Çö¿¡ ´ëÇÑ ´ÜÃàµÈ Çü½ÄÀ» Á¦°øÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, vim¿¡¼­ \i´Â (C ¾ð¾î ÀνÄÀÚ À̸§¿¡¼­ »ç¿ëÇÏ´Â ¹®ÀÚÀÎ) [_a-zA-Z0-9]¿Í °°½À´Ï´Ù. ±×·¯³ª ÀÌ·± ´ÜÃàµÈ Çü½ÄÀº µµ±¸¿¡ µû¶ó ¸¹Àº Â÷ÀÌ°¡ ³ª±â¶§¹®¿¡ °ü·Ã ¹®¼­¸¦ Âü°íÇÏ±æ ¹Ù¶ø´Ï´Ù.



POSIX.2¿¡¼­ Á¤ÀÇÇÑ ´ÜÃà Ç¥ÇöÀº ´ÙÀ½°ú °°½À´Ï´Ù. (C ¾ð¾î¿¡¼­ <ctype.h>¿¡ ¼±¾ðµÈ is*() ÇÔ¼ö¿Í ºñ½ÁÇÑ °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.) ´ÜÃàµÈ Çü½ÄÀÌ ³ªÅ¸³»´Â Á¤È®ÇÑ °ªÀº locale¿¡ µû¶ó º¯ÇÕ´Ï´Ù. ¿©±â¼­´Â ¿µ¾î±Ç¿¡¼­ »ç¿ëÇÏ´Â °ªÀ» º¸ÀÔ´Ï´Ù. µ¶ÀϾîÀÇ ¿ò¶ó¿ìÆ®(ä)¿Í °°ÀÌ ´Ù¸¥ ¾ð¾î±Ç¿¡¼­´Â ´Ù¸¥ °ªÀ» °¡Áú ¼ö ÀÖ½À´Ï´Ù.


    [:alnum:] - ¾ËÆĺª°ú ¼ýÀÚ. [a-zA-Z0-9]
    [:alpha:] - ¾ËÆĺª. [a-zA-Z]
    [:cntrl:] - Á¦¾î¹®ÀÚ. ASCII °ªÀ¸·Î 0x00-0x1F¿Í 0x7F
    [:digit:] - ¼ýÀÚ. [0-9]
    [:graph:] - Á¦¾î¹®ÀÚ¿Í °ø¹éÀ» Á¦¿ÜÇÑ ¹®ÀÚ. ASCII °ªÀ¸·Î 0x21-0x7E
    [:lower:] - ¼Ò¹®ÀÚ. [a-z]
    [:print:] - Á¦¾î¹®ÀÚ¸¦ Á¦¿ÜÇÑ ¹®ÀÚ. ASCII °ªÀ¸·Î 0x20-0x7E
    [:punct:] - [:graph:] Áß¿¡ [:alnum:]¿¡ ¼ÓÇÏÁö ¾ÊÀº ¹®ÀÚ. !, @, #, :, , µî
    [:space:] - space, tab, carriage return, new line, vertical tab, formfeed. ASCII °ªÀ¸·Î 0x09-x0D¿Í 0x20

    [:upper:] - ´ë¹®ÀÚ. [A-Z]
    [:xdigit:] - 16Áø¼ö¿¡ »ç¿ëÇÏ´Â ¹®ÀÚ. [0-9a-fA-F]





3.5. ´«À¸·Î º¸´Â Á¤±ÔÇ¥Çö½Ä




Á¤±ÔÇ¥Çö½ÄÀÌ ÆÐÅÏÀ» ã´Â °úÁ¤À» ½Ã°¢ÀûÀ¸·Î º¸¿©ÁÖ´Â ÇÁ·Î±×·¥µéÀÌ ÀÖ½À´Ï´Ù.


    Visual REGEXP (Tcl/Tk »ç¿ë)
    RegExplorer (Qt »ç¿ë)





4. Á¤±ÔÇ¥Çö½Ä »ç¿ë




ÀÌÁ¦ ÀÌ·± Á¤±ÔÇ¥Çö½ÄÀ» ½ÇÁ¦·Î ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö ¾Ë¾Æº¾½Ã´Ù. Æò¼Ò¿¡ ¸¹ÀÌ »ç¿ëÇÏ´Â vi, grep/egrep/fgrep, sed/awkÀÇ ¿¹¸¦ µé¾îº¸°Ú½À´Ï´Ù.





4.1. vi¿¡¼­




vi¿¡¼­ Á¤±ÔÇ¥Çö½ÄÀº ':'»óÅ¿¡¼­ »ç¿ëÇÕ´Ï´Ù. (½ÇÁ¦·Î ÀÌ »óÅ¿¡¼­ ½ÇÇàÇÏ´Â ¸í·É¾î´Â ed³ª ex¶ó´Â ÇÁ·Î±×·¥ÀÌ Ã³¸®ÇÏ°Ô µË´Ï´Ù. ±×·¡¼­ º¸Åë ÀÌ »óŸ¦ "ed-¸ðµå"¶ó°í ÇÕ´Ï´Ù.) ¹®¼­¿¡¼­ ¿øÇÏ´Â ÆÐÅÏÀ» ãÀ¸·Á¸é, (Ä¿¼­ ´ÙÀ½¿¡¼­ ãÀ»¶§) /ÆÐÅÏÀ̳ª (Ä¿¼­ Àü¿¡¼­ ãÀ»¶§) ?ÆÐÅÏÀ» »ç¿ëÇÕ´Ï´Ù.



Á¤±ÔÇ¥Çö½ÄÀº ¹®ÀÚġȯ°ú °áÇÕÇÏ¿© °­·ÂÇÑ ±â´ÉÀ» ÇÕ´Ï´Ù. ¹®ÀÚġȯ ¸í·ÉÀº ´ÙÀ½°ú °°½À´Ï´Ù.



:¹üÀ§s/º¯°æÀü/º¯°æÈÄ/¼öÁ¤ÀÚ



"¹üÀ§"´Â ¸í·ÉÀÌ ½ÇÇàµÉ ¹üÀ§¸¦ ³ªÅ¸³»¸ç, º¸ÅëÀº ÇöÀç ÆíÁýÇÏ°í ÀÖ´Â ¹®¼­ Àüü¸¦ Áö½ÃÇÏ´Â (ù¹ø° ÁÙ¿¡¼­ ¸¶Áö¸· ÁÙ±îÁö¸¦ ¶æÇÏ´Â) 1,$³ª ÁÙ¿©¼­ %¸¦ »ç¿ëÇÕ´Ï´Ù.



µÚ¿¡ "s"´Â ġȯ(substitute) ¸í·É¾îÀÔ´Ï´Ù.



"º¯°æÀü"°ú "º¯°æÈÄ"¿¡ ġȯÇÒ ³»¿ëÀ» ÀÔ·ÂÇÕ´Ï´Ù. "º¯°æÀü"¿¡ Á¤±ÔÇ¥Çö½ÄÀ» Àû½À´Ï´Ù. Á¤±ÔÇ¥Çö½ÄÀ¸·Î ., *, ^, $, [], \(...\), \<...\>, POSIX.2 ´ÜÃà Ç¥ÇöÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿©±â¼­ ¿©·¯ ¹®ÀÚ¸¦ ¹­¿©¼­ ´ÜÀ§¸¦ ¸¸µé°í ãÀº ³»¿ëÀ» ±â¾ïÇϴ Ư¼ö¹®ÀÚ°¡ \(, \)ÀÓÀ» ÁÖÀÇÇØ¾ß ÇÕ´Ï´Ù. ¹Ý´ë·Î (, )°¡ ÀϹݹ®ÀÚÀÔ´Ï´Ù. vim(VI iMproved)¿¡¼­´Â vi¿¡ Ãß°¡·Î |, +, (?¿Í °°Àº) =, {n,m}À» »ç¿ëÇÒ ¼ö ÀÖÁö¸¸, ¾Õ¿¡ \¸¦ ºÙ¿©¾ß ÇÕ´Ï´Ù. ¶Ç, vim¿¡´Â \i, \k, \p, \s µîÀÇ ´ÜÃà Ç¥ÇöµéÀÌ ÀÖ½À´Ï´Ù.

"º¯°æÈÄ"¿¡ \n°ú &¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. \n´Â "º¯°æÀü"¿¡¼­ n¹ø° \(...\)¿¡ ´ëÀÀÇÏ´Â ºÎºÐÀÌ°í, &´Â "º¯°æÀü"¿¡ ¸¸Á·ÇÑ Àüü¸¦ ³ªÅ¸³À´Ï´Ù. ¿¹¸¦ µé¾î, :%s/\([0-9][0-9]*\) \([Cc]hapter\)/\2 \1/´Â ¹®¼­¿¡¼­ 12 Chapter°°Àº ºÎºÐÀ» Chapter 12¿Í °°ÀÌ Ä¡È¯ÇÏ°í, :%s/F[1-9][12]*/&/g´Â HTML ¹®¼­¿¡¼­ "F1" ~ "F12"¶õ ´Ü¾î ¸ðµÎ¸¦ ±½Àº ü·Î ¹Ù²ß´Ï´Ù. (ÁÖÀÇ! &´Â Á¤±ÔÇ¥Çö½ÄÀÇ Æ¯¼ö¹®ÀÚ´Â ¾Æ´ÏÁö¸¸ viÀÇ Æ¯¼ö¹®ÀÚÀ̹ǷÎ, ¹®ÀÚ±×´ë·ÎÀÇ &¸¦ »ç¿ëÇÏ·Á¸é ´ë½Å \&¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.) ÀÌ¿Ü¿¡µµ (µÚ¸¦ ¸ðµÎ ´ë¹®ÀÚ·Î) \u³ª (µÚ¸¦ ¸ðµÎ ¼Ò¹®ÀÚ·Î) \l°°Àº ±â´ÉÀÌ ÀÖ½À´Ï´Ù.



"¼öÁ¤ÀÚ"´Â ġȯ ¸í·ÉÀÇ ¼¼ºÎ»çÇ×À» °áÁ¤ÇÕ´Ï´Ù. ÇÊ¿äÇÑ °Í¸¸ µÚ¿¡ Àû¾îÁÖ¸é µË´Ï´Ù.


g (global) - ÇÑ ÁÙ¿¡¼­ Á¤±ÔÇ¥Çö½ÄÀ» ¸¸Á·ÇÏ´Â ºÎºÐÀ» ¿©·¯°³ ã¾ÒÀ» ¶§ ¸ðµÎ´Ù ġȯÇÑ´Ù. ÀÌ ¼öÁ¤ÀÚ¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¸é óÀ½ °Í¸¸ ġȯÇÑ´Ù.
c (confirm) - ¸¸Á·ÇÏ´Â Á¤±ÔÇ¥Çö½ÄÀ» ã¾ÒÀ»¶§ ġȯÇϱâ Àü¿¡ È®ÀÎÇÑ´Ù.
i (ignore-case) - ´ë¼Ò¹®ÀÚ¸¦ ¹«½ÃÇÏ°í ã´Â´Ù. Áï, :%s/[aA][bB][cC]/XXX/ ´ë½Å¿¡ :%s/abc/XXX/i¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.



¸¶Áö¸·À¸·Î ÁÖÀÇÇÒ Á¡Àº ġȯ¸í·É¾î°¡ / ¹®ÀÚ·Î °¢ ºÎºÐÀ» ±¸ºÐÇϱ⶧¹®¿¡ "º¯°æÀü"À̳ª "º¯°æÈÄ"¿¡ / ¹®ÀÚ¸¦ »ç¿ëÇÏ·Á¸é \/ °°ÀÌ ½á¾ßÇÕ´Ï´Ù. ÇÊ¿äÇÏ´Ù¸é / ´ë½Å ´Ù¸¥ ¹®ÀÚ¸¦ »ç¿ëÇصµ µË´Ï´Ù. ¿¹¸¦ µé¾î, :%s/\/usr\/local\/bin\//\/usr\/bin\//g ´ë½Å :%s#/usr/local/bin/#/usr/bin/#g°¡ ¾Ë¾Æº¸±â ´õ ½±½À´Ï´Ù.





4.2. grep/egrep/fgrep¿¡¼­




grepÀº Global Regular Expression Print(ed ¸í·É¾î·Î :g/re/p)ÀÇ Áظ»·Î ÀԷ¿¡¼­ ¿øÇÏ´Â Á¤±ÔÇ¥Çö½ÄÀ» ã´Â ¸í·É¾îÀÔ´Ï´Ù. grep¿¡´Â egrep°ú fgrepÀ̶ó´Â º¯Á¾ÀÌ ÀÖ½À´Ï´Ù. ÀüÅëÀûÀ¸·Î egrepÀº grep º¸´Ù ´õ ´Ù¾çÇÑ Á¤±ÔÇ¥Çö½ÄÀ» Áö¿øÇÏ°í, fgrepÀº Á¤±ÔÇ¥Çö½ÄÀ» Áö¿øÇÏÁö ¾Ê°í »¡¸® °Ë»öÇϱâ À§ÇÑ ¸í·É¾îÀÔ´Ï´Ù. GNU grep¿¡¼­ egrepÀº grep -E, fgrepÀº grep -F¿Í °°½À´Ï´Ù.



grep°ú egrep ¸ðµÎ ., *, ?, +, {n,m}, ^, $, |, [], (...), \n, \<...\>, POSIX.2 ´ÜÃà Ç¥ÇöÀ» Áö¿øÇÕ´Ï´Ù. ´Ü, grepÀº ?, +, {, |, (, )¸¦ ÀϹݹ®ÀÚ·Î º¸±â¶§¹®¿¡ Ư¼ö¹®ÀÚ·Î »ç¿ëÇÏ·Á¸é ¾Õ¿¡ \¸¦ ºÙ¿©¾ß ÇÕ´Ï´Ù.





4.3. sed/awk¿¡¼­
...





5. Perl Á¤±ÔÇ¥Çö½Ä
...





6. Á¤±ÔÇ¥Çö½Ä ÀÀ¿ë
  



7. Á¤±ÔÇ¥Çö½Ä ÇÁ·Î±×·¡¹Ö




ÇÁ·Î±×·¡¹Ö ¾ð¾î¿Í °ü°è¾øÀÌ Á¤±ÔÇ¥Çö½ÄÀ» ÇÁ·Î±×·¡¹ÖÇÏ´Â ¹æ½ÄÀº ºñ½ÁÇÏ´Ù. ¸ÕÀú, »ç¿ëÇÒ Á¤±ÔÇ¥Çö½ÄÀ» "ÄÄÆÄÀÏ"ÇÑ´Ù. ¿©±â¼­ ÄÄÆÄÀÏÇÑ´Ù´Â ¸»Àº Á¤±ÔÇ¥Çö½ÄÀ» ½ÇÇàÆÄÀÏ·Î ¸¸µç´Ù´Â ¸»ÀÌ ¾Æ´Ï¶ó Á¤±ÔÇ¥Çö½ÄÀ» ó¸®ÇϱâÀ§ÇÑ ³»ºÎ ÀڷᱸÁ¶¸¦ ¸¸µç´Ù´Â ¶æÀÌ´Ù. ÀÌ ÀڷᱸÁ¶¸¦ »ç¿ëÇÏ¿© Á¤±ÔÇ¥Çö½ÄÀ» ºü¸£°Ô ó¸®ÇÒ ¼ö ÀÖ´Ù. ÄÄÆÄÀÏÇÑ ÈÄ ÄÄÆÄÀÏµÈ ÀڷᱸÁ¶¸¦ »ç¿ëÇÏ¿© ¿øÇÏ´Â °Ë»ö°ú ġȯÀ» ÇϰԵȴÙ. ¸¶Áö¸·À¸·Î »ç¿ëÀÌ ³¡³­ ÀڷᱸÁ¶¸¦ ¹ÝȯÇÑ´Ù. ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡ µû¶ó ÀÌ °úÁ¤ÀÌ ÇÊ¿ä¾ø´Â °æ¿ìµµ ÀÖ´Ù.





7.1. C ¾ð¾î




glibc(GNU C Library)¿¡ Á¤±ÔÇ¥Çö½ÄÀ» À§ÇÑ ´ÙÀ½°ú °°Àº ÇÔ¼öµéÀÌ ÀÖ´Ù.



#include <regex.h>



int regcomp(regex_t *compiled, const char *pattern, int cflags);
int regexec(regex_t *compiled, char *string, size_t nmatch, regmatch_t matchptr[], int eflags);
void regfree(regex_t *compiled);
size_t regerror(int errcode, regex_t *compiled, char *buffer, size_t length);





¸ÕÀú ÇÔ¼ö¿Í ÀÚ·áÇüÀÌ ¼±¾ðµÈ regex.h¸¦ Æ÷ÇÔÇÑ´Ù. regcomp()´Â pattern¿¡ ÁÖ¾îÁø Á¤±ÔÇ¥Çö½ÄÀ» ÄÄÆÄÀÏÇÏ¿© °á°ú¸¦ compiled¿¡ ÀúÀåÇÑ´Ù. cflags ÀÎÀÚ´Â Á¤±ÔÇ¥Çö½Ä ó¸® ¿É¼ÇµéÀ» ÁöÁ¤ÇÑ´Ù. Á¤»óÀûÀ¸·Î ½ÇÇàµÇ¸é 0À» ¹ÝȯÇÏ°í, ¿À·ù°¡ ¹ß»ýÇÑ °æ¿ì 0ÀÌ ¾Æ´Ñ °ªÀ» ¹ÝȯÇÑ´Ù.



[Ç¥ 1] cflags ÀÎÀÚ



REG_EXTENDED  
REG_ICASE : ´ë¼Ò¹®ÀÚ ±¸º°¾ÈÇÔ
REG_NOSUB : °ýÈ£·Î ãÀº ºÎºÐ ¿µ¿ª ±â¾ïÇÏÁö ¾Ê±â
REG_NEWLINE : ¿©·¯ ÁÙÀ» ó¸®. ÀÌ ¿É¼ÇÀÌ ¾ø´Ù¸é .¿¡ Çà¹Ù²Þ ¹®ÀÚ°¡ Æ÷ÇԵǰí, (»çÀÌ¿¡ Çà¹Ù²Þ ¹®ÀÚ°¡ ÀÖ´õ¶óµµ) ^°ú $´Â ãÀ¸·Á´Â ¹®ÀÚ¿­ÀÇ ½ÃÀÛ°ú ³¡¸¸À» ÀǹÌÇÑ´Ù.


½ÇÁ¦ Á¤±ÔÇ¥Çö½Ä °Ë»öÀº regexec()À¸·Î ÇÑ´Ù. string¿¡ Á¤±ÔÇ¥Çö½ÄÀ¸·Î °Ë»öÇÒ ¹®ÀÚ¿­À» ÁÖ¸é ...




ÆÄÀÏ ¾÷·Îµå½Ã ÆÄÀϸíÀ» üũÇÏ´Â ÇÔ¼öÀÌ´Ù.

¾Æ·¡ÀÇ ÇÔ¼ö´Â ¿ÀÁ÷ ¼ýÀÚ¿Í ¿µ¹®À¸·Î¸¸ ÀÌ·ç¾îÁø ÆÄÀÏ¿¡ÇÑÇØ

true¸¦ ¸®ÅÏÇÑ´Ù.


#############################################################
# ÆÄÀÏ¸í ºñ±³ ÇÔ¼ö(Ư¼ö¹®ÀÚ ¹× ÇÑ±Û Æ÷ÇԽà False ¸®ÅÏ)
# Programmer : ÃÖÇöÇÊ(KumRyung) - 2005.05.24
#############################################################

function ChkFileName($FileName)
{
// Ȥ½Ã³ª ÀÖÀ» ½ÃÀÛ°ú ³¡ÀÇ °ø¹é Á¦°Å...
$filename = trim($FileName);

// ¼ýÀÚ¿Í ¿µ¹® ±×¸®°í . ÀÌ¿ÜÀÇ ¹®ÀÚ°¡ ÀÖ´ÂÁö üũ
preg_match('/[0-9a-zA-Z.]+/', $FileName, $Result);
// Âü°í : ( ,) , [ , ] ¸¦ ÆÄÀÏ¸í¿¡ Æ÷ÇÔÇÏ°í ½ÍÀ» °æ¿ì
// '/[0-9a-zA-Z.\(\)\[\]]+/' ÀÌ Á¤±Ô½ÄÀ» »ç¿ëÇϼ¼¿ä!

// üũÇÑ °á°ú°ªÀÌ ¾÷·ÎµåÇÑ ÆÄÀϸí°ú °°ÀºÁö üũ
if( $Result[0] == $FileName )
return "true"; // °°´Ù¸é True
else
return "false"; // ´Ù¸£´Ù¸é False
};
ÃßõÃßõ : 461 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
223
Á¤±Ô½Ä ÆÁ
222
±×´©º¸µå¿¡¼­ »ç¿ëµÈ XSS (Cross Site Script) ¸·±â
221
À¯Åõºê µ¿¿µÀå ÁÖ¼Ò ÃßÃâ PHP Á¤±Ô½Ä ¿¹ 2 (parse_str ¹æ½Ä)
220
À¯Åõºê µ¿¿µÀå ÁÖ¼Ò ÃßÃâ Á¤±Ô½Ä ¿¹ 1
219
YouTube shortcode fix for a blog imported from WordPress.com
218
PHP < ![CDATA[ 2 ]]> Á¦°Å Á¤±Ô½Ä
217
span, font ű׸¦ Á¦°ÅÇÏ´Â Á¤±Ô½Ä
216
º»¹®¿¡¼­ À̹ÌÁö ÃßÃâ, À̹ÌÁö Á¦°Å Á¤±Ô½Ä
215
¿©·¯°³ÀÇ ºóÄ­ , ÁÙÀ» °ø¹éÀ¸·Î º¯°æÇϱâ
214
URL ó¸® °ü·Ã Á¤±Ô½Ä
213
PHP Á¤±Ô½Ä À¯È¿¼º°Ë»ç ¿¹Á¦ (IDüũ, À̸ÞÀÏüũµî)
PHP¿¡¼­ Ư¼ö¹®ÀÚ ¾ø¾Ö´Â Á¤±ÔÇ¥Çö½Ä
211
php ¹®ÀÚ¿­ ÀÚ¸£±â, ºñ±³, ã±â ÇÔ¼ö, str_replace, substr ,strpos, explode µîµî Á¤¸®
210
¼¼¼Ç ¹× ÄíÅ°ÀÇ Á¤º¸¸¦ ¾ÏȣȭÇϱâ
209
GetImageSize À̹ÌÁöÆÄÀÏÀÇ »çÀÌÁ ¾Ë¾Æ³»´Â ÇÔ¼ö
208
¹®ÀÚ¿­ÀÇ °ø¹éÀ» À߶󳻴 chop, trim, ltrim ÇÔ¼ö
207
µÎ°³ÀÇ º¯¼ö¸¦ ºñ±³ÇÏ´Â strcmp ÇÔ¼ö
206
ű׸¦ ¾ø¾Ö°í Ãâ·ÂÇÏ´Â strip_tags ÇÔ¼ö
205
ű׸¦ ±×´ë·Î Ãâ·ÂÇÏ´Â htmlspecialchars ÇÔ¼ö
204
º¯¼ö³»¿¡ ¿ª½½·¡½Ã ³Ö±â¿Í »©±â
203
Á¦¾î ±¸Á¶ÀÇ ´ëü ¹®¹ý
202
elseif/else if
201
if..endif ±¸¹®
200
POST, GETÀ¸·Î º¯¼ö°ªÀÌ ³Ñ¾î°¡Áö ¾Ê´Â °æ¿ì - register_globals
199
PHP ÆÄÀÏ°ü·Ã ÇÔ¼ö
198
¿ø°ÝÁö ÆÄÀÏÀÇ Á¸Àç ¿©ºÎ¸¦ üũ »ç¿ëÀÚ ÇÔ¼ö
197
PHP ÆÄÀÏ ´Ù·ç±â
196
[PHP] ÆÄÀÏ ÇÔ¼ö
195
ÆÄÀÏ »ý¼º, ±â·Ï, Àбâ
194
´Ù¸¥ ¼­¹ö·Î °ªÀ» Àü¼ÛÈÄ °á°ú°ªÀ» ¹Þ´Â ¹æ¹ý
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.