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

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

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



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



$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
};

ÃßõÃßõ : 427 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
2,885
input ÀÔ·Â ÇÊµå ¾ÕµÚ °ø¹é ½Ç½Ã°£ Á¦°Å
2,884
Placeholder Æ÷Ä¿½º½Ã °¨Ãß±â
2,883
MySQL Áߺ¹µÈ µ¥ÀÌÅ͸¦ »èÁ¦
2,882
MySQL Áߺ¹ µ¥ÀÌÅÍ È®ÀÎ
2,881
sessionStorage.getItem ¿Í sessionStorage.setItem
2,880
Á¦ÀÌÄõ¸® ·£´ýÀ¸·Î ¹è°æ»ö º¯°æ
2,879
preg match¿¡ °üÇÑ Á¤±Ô½Ä
2,878
Stream an audio file with MediaPlayer ¿Àµð¿À ÆÄÀÏ ½ºÆ®¸®¹Ö Çϱâ
2,877
Audio Streaming PHP Code
2,876
PHP $ SERVER ȯ°æ º¯¼ö Á¤¸®
2,875
Vimeo (ºñ¸Þ¿À) API ¸¦ »ç¿ëÇÏ¿© Ç÷¹À̾î ÄÁÆ®·ÑÇϱâ
2,874
iframe »ç¿ë½Ã ÇÏ´Ü¿¡ ¹ß»ýÇÏ´Â °ø¹é Á¦°Å¹æ¹ý
2,873
¾ÆÀÌÇÁ·¹ÀÓ(iframe) Àüüȭ¸é °¡´ÉÇÏ°Ô Çϱâ
2,872
ºÎÆ®½ºÆ®·¦(bootstrapk)¿¡¼­ »ç¿ëÇÏ´Â class¸í Á¤¸®
2,871
ºÎÆ®½ºÆ®·¦ CSS
2,870
Å©·Ò¿¡¼­ ¸¶Áø Á¶Àý
2,869
PHP ÇöÀç ÆäÀÌÁöÀÇ µµ¸ÞÀθíÀ̳ª urlµîÀÇ Á¤º¸ ¾Ë¾Æ¿À±â
2,868
PHP preg match all()
2,867
PHP ·Î À¥ÆäÀÌÁö ±Ü¾î¿À±â ¸ðµç ¹æ¹ý ÃÑÁ¤¸®!
2,866
[PHP] ¿ø°ÝÁö ÆÄÀÏ ÁÖ¼Ò ³ëÃâ ¾ÈÇÏ°í curl·Î ´Ù¿î·Îµå ¹Þ±â
2,865
PHP ÇÔ¼ö Á¤¸®
2,864
¾ÆÀÌÇÁ·¹ÀÓ(iframe) ºñÀ² À¯ÁöÇϸ鼭 Å©±â Á¶ÀýÇÏ´Â ¹æ¹ý
2,863
PHP ¹è¿­¿¡¼­ ¹«ÀÛÀ§·Î Çϳª »Ì¾ÆÁÖ´Â array rand() ÇÔ¼ö
2,862
PHP Á¤±Ô½Ä Á¤¸®
2,861
PHP Á¤±Ô½ÄÀ» È°¿ëÇÑ ÅÂ±× ¹× ƯÁ¤ ¹®ÀÚ¿­ Á¦°Å ¹× ÃßÃâ ¹æ¹ý
2,860
php Å©·Ñ¸µ ¶Ç´Â ÆÄ½Ì ÇÔ¼ö, Á¤±Ô½Ä ¸ðÀ½
2,859
Á¦ÀÌÄõ¸® ±âº» ¸í·É¾î
2,858
À¥ÆäÀÌÁö °¡·Î ¸ðµå¼¼·Î ¸ðµå ÀνÄÇϱâ
2,857
¸ð¹ÙÀÏ À¥ È­¸é °­Á¦ ȸÀü(°¡·Î¸ðµå °íÁ¤)
2,856
[HTML5]¿¡¼­ frameset ´ëü ¹æ¹ý°ú iframe ¼Ó¼º
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.