Á¤±Ô½ÄÀº "¹®ÀÚ¿ÀÇ ÁýÇÕÀ» ³ªÅ¸³»±â À§ÇÑ Ç¥Çö ±ÔÄ¢"À̶ó°íµµ Ç¥ÇöµÈ´Ù. ¹æ±Ý ÀÔ·ÂµÈ ¹®ÀÚ¿ÀÌ Å°¿öµåÀÎÁö ¾Ë¾Æº¸±â À§Çؼ Å°¿öµåÀ̱â À§ÇØ ¸¸Á·µÇ¾î¾ß ÇÏ´Â Á¶°ÇÀ» ÀÏ°üµÈ ¹æ¹ýÀ¸·Î Ç¥ÇöÇÏ´Â °ÍÀÌ´Ù.
¹®ÀÚ¿À» ã´Â(pattern matching) °Í»Ó¸¸ ¾Æ´Ï¶ó ġȯ(substitution)¿¡µµ À¯¿ëÇÏ°Ô »ç¿ëµÉ ¼ö ÀÖ´Ù. Search & Replace ´Â À¢¸¸ÇÑ ¿¡µðÅÍ¿¡¼´Â ´Ù Áö¿øÇÏ´Â ±â´ÉÀε¥, º¸Åë Ignore Case ³ª Whole word only Á¤µµÀÇ ¿É¼ÇÀ» Á¦°øÇÑ´Ù. MSDEV ¿Í °°Àº ÄÚµù¿ë ¿¡µðÅÍ¿¡¼´Â Á¤±Ô½ÄÀ» Áö¿øÇÏ¿©, Search & Replace ¿¡ °·ÂÇÑ ±â´ÉÀ» ºÎ¿©ÇÑ´Ù.
À̹ø ¼¼¹Ì³ª¿¡¼´Â Á¤±Ô½Ä ÀÇ °£´ÜÇÑ ¹®¹ý°ú °¢Á¾ ¾ð¾î¿¡¼ÀÇ Áö¿ø, ½ÇÁ¦ È°¿ë ¿¹ µî¿¡ ´ëÇØ Á¢ÇØ º¸´Â °ÍÀ» ¸ñÇ¥·Î Çϸé ÁÁÀ» °ÍÀÌ´Ù.
/bbcom/À§ÀÇ Á¤±Ô½ÄÀº bbcom À̶ó´Â ¹®ÀÚ¿À» ã´Â´Ù.
À§ÀÇ ¹®ÀÚ¿À» ã´Â ¿¹¸¦ ¸î °³ µé¾î º¸ÀÚ.
Perl:
$str = "my bbcommunication"; if ($str =~ /bbcom/) { print "Good\n"; }
JavaScript:
var str = "my bbcommunication"; if (str.match(/bbcom/)) { print "Good\n"; }
MSDEV:
MFC with CRegExp:
CString str = "my bbcommunication"; CRegExp re = "bbcom"; if (re.Match(str)) { AfxMessageBox("Good"); }
¿©±â±îÁö´Â ¿ì½À´Ù. ÀÌÁ¦ Á¤±Ô½Ä¿¡¼ »ç¿ëµÇ´Â °¢Á¾ Ư¼ö ¹®Àڵ鿡 ´ëÇØ ¾Ë¾Æº¸ÀÚ.
¾Æ¹«°³¹®ÀÚ (wild card)
µµ½º µî¿¡¼ ÆÄÀϸíÀ» ÁöÁ¤ÇÒ ¶§ wildcard ¶ó´Â °ÍÀ» ½è´Ù. ? ¿Í * ÀÇ »ç¿ë¹æ¹ýÀº ±»ÀÌ ¼³¸íÇÏÁö ¾Ê¾Æµµ ¾Ë °ÍÀÌ´Ù. Á¤±Ô½Ä¿¡¼´Â ¸ðµç ¹®ÀÚ¿¡ ÇØ´çÇÏ´Â °ÍÀ¸·Î . (dot) ¸¦ »ç¿ëÇÑ´Ù.
/bb.om/ =~ "bbbom", "bbcom", "bbdom", ...
¸ðµç ¹®ÀÚ¸¦ ÁöÁ¤ÇÏÁö ¾Ê°í subsetÀ» ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù. [ ] ¾È¿¡ °¡´ÉÇÑ ±ÛÀÚ¸¦ ¿°ÅÇÏ¸é µÈ´Ù.
/bb[abc]om/ =~ "bbaom", "bbbom", "bbcom", ... !~ "bbdom", "bb.om", ...
¿°ÅÇÒ ¶§´Â - ¸¦ ½á¼ °£´ÜÈ÷ Ç¥ÇöÇÒ ¼öµµ ÀÖ´Ù. ASCII code °ªÀÌ ÀÛÀº °ÍÀ» ¾Õ¿¡ µÎ°í Å« °ÍÀ» µÚ¿¡ µÎ´Â ¹æ½ÄÀ¸·Î ÇÒ ¼ö ÀÖÀ¸¸ç, °áÇÕÇؼ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.
/bb[a-z]om/ =~ "bbaom", "bbbom", ... , "bbzom" !~ "bbAom", "bb.om", "bb!om", ... /bb[a-ckA-C0-8]om/ =~ "bbaom", "bbkom", "bbAom", "bb7om", ... !~ "bbdom", "bbDom", "bb9om", ...
ÇÊ¿äÇÑ ¹®ÀÚ¸¦ ÁöÁ¤ÇÒ »Ó ¾Æ´Ï¶ó ÇÊ¿ä ¾ø´Â ¹®ÀÚ¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù.
/bb[^ag-k]om/ =~ "bbbom", "bbcom", ... !~ "bbaom", "bbgom", ..., "bbkom"
»ç¿ëµÇ´Â Åø¿¡ µû¶ó¼ ´ÜÃàÇÏ¿© »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.
À̸§ ´ÜÃà¸í·É ³»¿ë ---------------------------------------------------- WhiteSpace \s [ \t\n\r\f] Word Character \w [a-zA-Z0-9] Digit \d [0-9] Non-WhiteSpace \S [^ \t\n\r\f] Non-Word Character \W [^a-zA-Z0-9] Non-Digit \D [^0-9]
´ÜÃà¸í·ÉµéÀº »ç¿ëµÇ´Â Åø¿¡ µû¶ó Áö¿øµÇ´Â Á¾·ù°¡ ¸Å¿ì ´Ù¾çÇѵ¥, Perl °ú JavaScript¿¡¼ ÃæºÐÈ÷ Áö¿øÇØ ÁØ´Ù.
¼ö·®»ç (quantifier)
¾Õ¿¡¼ ? ¿¡ ÇØ´çÇÏ´Â °Í¸¸ À̾߱âÇÏ°í * Àº »©¸Ô¾ú´Ù°í »ý°¢Çß´ÂÁö ¸ð¸£°Ú´Âµ¥, ÀÌ°ÍÀº ¼ö·®»ç¿¡¼ ¼³¸íÇϱâ À§Çؼ¿´´Ù. Á¤±Ô½Ä¿¡¼´Â °³¼ö¸¦ Ç¥ÇöÇϱâ À§ÇØ { } (curly brace)¸¦ »ç¿ëÇÑ´Ù.
/bbc{2}om/ =~ "bbccom" !~ "bbcbbcom" /bb[abc]{2}om/ =~ "bbabom", "bbbbom", "bbcaom" !~ "bbcom", "bbabcom" /bb[a-z]{3,7}om/ =~ "bbcomom", "bbcomcomom", "bbscgyongom" !~ "bbabom", "bbbluekissom"
°£´ÜÇÑ ¼ö·®»ç·Î ?, +, * °¡ ÀÖ´Ù.
ÀÇ¹Ì ´ÜÃà ³»¿ë ----------------------------- zero or one ? {0,1} zero or more * {0,} one or more + {1,}
»ç¿ë¿¹´Â ´ÙÀ½°ú °°´Ù.
/bbc?om/ =~ "bbom", "bbcom" /bbc+om/ =~ "bbcom", "bbccom", "bbcccom", ... !~ "bbom" /bbc*om/ =~ "bbom", "bbcom", "bbccom" ...
ÀÌÁ¦±îÁö´Â ÇÑ ±ÛÀÚ¸¸À» ´Ù·ç¾ú´Ù. ¿©·¯ °³ÀÇ ±ÛÀÚ¸¦ Çϳª·Î ¹±â À§Çؼ ( ) (parenthesis)¸¦ »ç¿ëÇÑ´Ù.
/b(bco)*m/ =~ "bm", "bbcom", "bbcobcom" /bb([a-z]o)+m/ =~ "bbcom", "bbzom", "bbaobocodoeom" !~ "bbm", "bbazm"
°æ°è (boundary)
^ À̳ª $¸¦ »ç¿ëÇÏ¿© óÀ½À̳ª ³¡ µîÀÇ °æ°è¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. Åø¿¡ µû¶ó \b¸¦ word boundary ·Î, \B¸¦ non-word boundary ·Î »ç¿ëÇÏ´Â °æ¿ìµµ ÀÖ´Ù.
/bbcom/ =~ "my bbcomm" /^bbcom/ =~ "bbcomm" !~ "my bbcomm" /bbcom$/ =~ "my bbcom" !~ "bbcomm" /\bbbcom\b/ =~ "bbcom good" !~ "bbcomm"
¼±ÅÃ
| (vertical bar)¸¦ »ç¿ëÇÏ¿© ¸î °¡Áö °æ¿ì Áß¿¡¼ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.
/bb(com|micro)soft/ =~ "bbcomsoft", "bbmicrosoft" !~ "bbsoft"
/microsoft/bbcom/
¾Õ¿¡¼¿Í °°ÀÌ ¿©·¯ Åø¿¡¼ ġȯÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸ÀÚ.
Perl:
$str = "The microsoft conquers the market"; $str =~ s/microsoft/bbcom/;
Sed:
# cat text.txt The microsoft conqures the market # cat text.txt | sed 's/microsoft/bbcom/' The bbcom conquers the market #
MSDEV:
Back Reference ( \ )
¼ö·®»ç ºÎºÐ¿¡¼ °ýÈ£¸¦ »ç¿ëÇÏ¿© ±×·ìÀ» ¸¸µå´Â °Í¿¡ ´ëÇØ ¾ð±ÞÇß¾ú´Âµ¥, °ýÈ£´Â ġȯÇÒ ¶§ ¾ÆÁÖ Áß¿äÇÏ°Ô »ç¿ëµÈ´Ù. 1ºÎÅÍ 9±îÁöÀÇ num ¿¡ ´ëÇØ \num Àº num ¹ø° °ýÈ£ ±×·ìÀ» ¶æÇÑ´Ù. ´ÙÀ½ ¸î °¡Áö ¿¹Á¦¸¦ º¸ÀÚ.
Perl:
$str = "first last"; $str =~ s/^(\S+)\s+(\S+)$/\2 \1/;
MSDEV:
Find: ^\([0-9A-Za-z\.]+\) \(.+\)$ Replace: <TR><TH><A HREF="http://\1">\1</A></TH><TD>\2</TD>
Ư¼ö ¹®ÀÚ¸¦ ÀÏ¹Ý ¹®ÀÚó·³ »ç¿ëÇϱâ À§ÇØ, Áï . (dot)¸¦ ¾Æ¹«°³ ¹®ÀÚ·Î »ç¿ëÇÏÁö ¾Ê°í ±× ÀÚü·Î »ç¿ëÇÏ°íÀÚ ÇÑ´Ù¸é \¸¦ »ç¿ëÇÏ¿© escape ½ÃÄÑ¾ß ÇÑ´Ù. ( ¿Í ) ¸¦ ÀÏ¹Ý ¹®ÀÚ·Î º¸°í \( ¿Í \) ¸¦ Ư¼ö ¿ëµµ·Î »ç¿ëÇÏ´Â ÅøµéÀÌ Àִµ¥, MSDEV ³ª vi °¡ ±×·¸´Ù. °è¼ÓÇؼ Back reference °¡ ´Ù¸¥ Åø¿¡¼ »ç¿ëµÇ´Â ¿¹¸¦ º¸ÀÚ.
Perl:
$time = "12:34:56"; if ($time =~ /(..):(..):(..)/) { $hours = $1; $minutes = $2; $seconds = $3; }
JavaScript #1:
var re = /(..):(..):(..)/; var str = "12:34:56"; if (str.match(re)) { var hours, minutes, seconds; hours = re.$1; minutes = re.$2; seconds = re.$3; }
JavaScript #2
var re = /(..):(..):(..)/; var str = "12:34:56"; var arr = str.match(re); if (arr) { var hours, minutes, seconds; hours = arr[1]; minutes = arr[2]; seconds = arr[3]; }
MFC with CRegExp:
CRegExp re = "(..):(..):(..)"; CString str = "12:34:56"; if (re.Match(str)) { CString hours, minutes, seconds; hours = re[1]; minutes = re[2]; seconds = re[3]; }
Back reference ´Â replacement text ¿¡¼»Ó ¾Æ´Ï¶ó pattern ¿¡¼µµ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
/(.+)\1/ =~ "bbcom", "beebeecom"
Maximal / Minimal matching
¼ö·®»ç (quantifier) ¸¦ »ç¿ëÇÒ ¶§ ÁÖÀÇÇÒ °ÍÀÌ Çϳª Àִµ¥, ÁöÁ¤ÇÑ ¼ö·®»ç Áß¿¡¼ °¡´ÉÇÑ ÇÑ Å« ¼ýÀÚ¿¡ ¸ÂÃß·Á°í ³ë·ÂÇÑ´Ù´Â Á¡ÀÌ´Ù. ÀÌ°ÍÀ» maximal matching ¶Ç´Â greed matching À̶ó ºÎ¸¥´Ù.
$str = "bbcommunication"; $str =~ s/bbcom*/babo/; # str becomes: "babounication";
¿©±â±îÁö´Â ´ç¿¬ÇØ º¸ÀÌÁö¸¸ ´ÙÀ½À» º¸ÀÚ.
$str = "bbcommunication"; $str =~ s/(bbcom*)(m*uni)/\1_\2/; # str -> "bbcomm_unication"
\1 °ú \2 ¸¦ ³ª´ ¶§ bbco ¿Í mmuni ·Îµµ, bbcom °ú muni ·Îµµ, bbcomm °ú uni ·Îµµ ÀÏÄ¡°¡ µÇÁö¸¸, ¸ÕÀú ³ª¿Â ¼ö·®»çÀÎ m* ÀÌ ¸ÕÀú m µÎ °³¸¦ Àâ¾Æ ¸Ô°í (greedy), ³ª¸ÓÁö¸¦ m*uni °¡ °¡Á®°£´Ù´Â ¸»ÀÌ´Ù. Minimal matchingÀ» Çϱâ À§Çؼ´Â ¼ö·®»ç µÚ¿¡ ? ¸¦ ºÙÀδÙ.
$str = "bbcommunication"; $str =~ s/(bbcom*?)(m*uni)/\1_\2/; # str -> "bbco_mmunication"
Search options
Ignore Case¸¦ À§ÇÑ ¿É¼Ç i ¿Í Global Searce¸¦ À§ÇÑ ¿É¼Ç g ´Â ´ëºÎºÐÀÇ Åø¿¡¼ Áö¿øµÈ´Ù.
/bbcom/i =~ "BbCom" $str = "BbCom"; $str =~ s/b/Bee/gi; # str -> "BeeBeeCom"
Perl ÀÇ m, o, s, x µî ¸î °¡Áö ¿É¼ÇÀÌ ´õ Àִµ¥ ¼³¸íÀº »ý·«ÇÑ´Ù.
cat test.html | sed 's/(src\s*=\s*".)(\.gif")/\1.gif"/gi' > test.html
ASP¿¡¼ »ç¿ëÀڵ鿡 ´ëÇÑ Á¤º¸¸¦ DB ·ÎºÎÅÍ Àоî ÁÖ¼Ò Áß ¾ÕÀÇ µÎ ´Ü¾î¸¸ Ãâ·ÂÇÏ´Â °æ¿ìÀÌ´Ù.
<%@ Language = JScript %> <HTML><BODY> <TABLE> <% var conn = Server.CreateObject("ADODB.Connection"); conn.Open("Users", "", ""); var sql = "SELECT * FROM tblUsers"; var rs = conn.Execute(sql); while (!rs.EOF) { var addr = String(rs("addr")); var arr = addr.match(/(\S+)\s+(\S+)/); var faddr = arr ? arr[0] : " "; %> <TR><TH><%=rs("name")%></TH><TD><%=faddr%></TD></TR> <% rs.MoveNext(); } rs.Close(); conn.Close(); %> </TABLE> </BODY></HTML>