¹®ÀÚ¿ ¾È¿¡ ³ªÅ¸³ª´Â ÆÐÅÏ (Á¤±Ô Ç¥Çö½Ä)À» ±³Ã¼ÇÕ´Ï´Ù.
NewStr := RegExReplace(Haystack, NeedleRegEx [, Replacement = "", OutputVarCount = "", Limit = -1, StartingPosition = 1])
RegExReplace()´Â HaystackÀÇ ³»¿ëÀ» ¿¬»êÀ¸·Î ±³Ã¼ÇÏ¿© µ¹·ÁÁÝ´Ï´Ù. ±³Ã¼°¡ ÇÊ¿äÇÏÁö ¾ÊÀ¸¸é, HaystackÀº ±×´ë·Î ¹ÝȯµË´Ï´Ù. ¿¡·¯°¡ ÀϾ¸é (¿¹¸¦ µé¾î NeedleRegEx ¾ÈÀÇ ±¸¹® ¿¡·¯°¡ ÀÖÀ¸¸é), HaystackÀº ±×´ë·Î ¹ÝȯµË´Ï´Ù (1.0.46.06 ÀÌÀü ¹öÀüÀº ¿¹¿ÜÀε¥, ""¸¦ µ¹·ÁÁÝ´Ï´Ù) ±×¸®°í ErrorLevelÀº 0 ´ë½Å¿¡ ¾Æ·¡ÀÇ °ª Áß Çϳª°¡ ¼³Á¤µË´Ï´Ù.
±×ÀÇ ³»¿ëÀÌ °Ë»öµÇ°í ±³Ã¼µÉ ¹®ÀÚ¿.
°Ë»öÇÒ ÆÐÅÏ, Perl-ȣȯ Á¤±Ô Ç¥Çö½Ä (PCRE)ÀÔ´Ï´Ù. ÆÐÅÏÀÇ ¿É¼ÇÀº (ÀÖ´Ù¸é) ¹®ÀÚ¿ÀÇ ¸Ç ¾Õ¿¡ ´Ý´Â ¹Ý°ýÈ£¸¦ Æ÷ÇÔ½ÃÄÑ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ÆÐÅÏ "i)abc.*123"
´Â ´ë¼Ò¹®ÀÚ ±¸ºÐ ¿É¼ÇÀ» ÄÑ°í "abc"¸¦ ãÀº ´ÙÀ½, 0 °³ ÀÌ»ó ¹®ÀÚ°¡ ³ªÅ¸³ª´ÂÁö ã°í, ´ÙÀ½¿¡ "123"À» ã½À´Ï´Ù. ¾Æ¹« ¿É¼Çµµ ¾ø´Ù¸é, ")"´Â ¼±ÅÃÀûÀÔ´Ï´Ù; ¿¹¸¦ µé¾î, ")abc"´Â "abc"¿Í µ¿µîÇÕ´Ï´Ù.
ºÎÇÕÇÏ¸é ±³Ã¼µÉ ¹®ÀÚ¿, Æò¹üÇÑ ÅؽºÆ®ÀÔ´Ï´Ù (Á¤±Ô Ç¥Çö½Ä ¾Æ´Ô). $1¿Í °°Àº ¿ªÂüÁ¶¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù. HaystackÀ¸·ÎºÎÅÍ Ã¹ ¹ø° ºÎÆÐÅÏ¿¡ ºÎÇÕÇÑ ºÎ¹®ÀÚ¿À» °¡Áö°í ¿É´Ï´Ù. °¡Àå ´Ü¼øÇÑ ¿ªÂüÁ¶´Â $0ºÎÅÍ $9ÀÔ´Ï´Ù. $0Àº Àüü ÆÐÅÏ¿¡ ºÎÇÕÇÑ ºÎ¹®ÀÚ¿ÀÔ´Ï´Ù. $1Àº ù ºÎÆÐÅÏ¿¡ ºÎÇÕÇÑ ºÎ¹®ÀÚ¿ÀÔ´Ï´Ù. $2´Â µÎ ¹ø° ºÎÆÐÅÏ¿¡ ºÎÇÕÇÑ ºÎ¹®ÀÚ¿ÀÔ´Ï´Ù. µîµî. 10 ÀÌ»óÀÇ ¿ª ÂüÁ¶´Â (±×¸®°í ¼±ÅÃÀûÀ¸·Î 9 ÀÌÇϵµ), ¼ýÀÚ¸¦ È°°ýÈ£ ¾È¿¡ µÑ·¯ ½Î½Ê½Ã¿À; ¿¹, ${10}, ${11}, µîµî. À̸§ ºÎÆÐÅÏÀº ±× À̸§À» È°°ýÈ£ ¾È¿¡ µÑ·¯ ½Î½Ê½Ã¿À; ¿¹, ${SubpatternName}. ±âÈ£ ±×´ë·Î $¸¦ ÁöÁ¤ÇÏ·Á¸é, $$¸¦ »ç¿ëÇϽʽÿÀ (ÀÌ°ÍÀº ±×·± Ưº° Ãë±ÞÀÌ ÇÊ¿äÇÑ À¯ÀÏÇÑ ¹®ÀÚÀÔ´Ï´Ù; ¿ª»ç¼±Àº ÇǽŽÃÅ°´Â µ¥ ÀüÇô ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù).
ºÎÆÐÅÏÀÇ ´ë¼Ò¹®ÀÚ¸¦ º¯È¯ÇÏ·Á¸é, $ ´ÙÀ½¿¡ ´ÙÀ½ ¹®ÀÚ Áß Çϳª¸¦ ¹èÄ¡ÇϽʽÿÀ: U ¶Ç´Â u (´ë¹®ÀÚ), L ¶Ç´Â l (¼Ò¹®ÀÚ), T ¶Ç´Â t (Á¦¸ñ°ÝÀÔ´Ï´Ù. Áï, °¢ ´Ü¾îÀÇ Ã¹ ±ÛÀÚ°¡ ´ë¹®ÀÚ°¡ µÇ°í ´Ù¸¥ ¸ðµç ±ÛÀÚ´Â ¼Ò¹®ÀÚ°¡ µË´Ï´Ù). ¿¹¸¦ µé¾î, $U1¿Í $U{1} µÑ ¸ðµÎ ù ºÎÆÐÅÏÀÇ ´ë¹®ÀÚ ¹öÀüÀ¸·Î º¯È¯ÇÕ´Ï´Ù.
Á¸ÀçÇÏÁö ¾Ê´Â ¿ªÂüÁ¶¿Í Haystack¿¡¼ ¾Æ¹« °Íµµ ºÎÇÕÇÏÁö ¸øÇÑ °ÍµéÀº -- ¿¹¸¦ µé¾î "(abc)|(xyz)"ÀÇ ºÎÆÐÅÏ Áß Çϳª -- ºó ¹®ÀÚ¿·Î º¯È¯µË´Ï´Ù.
ÀÏ¾î³ ±³Ã¼ÀÇ È½¼ö¸¦ ÀúÀåÇÒ º¯¼öÀÇ À̸§. µû¿ÈÇ¥ ó¸® ¾øÀ½ (±³Ã¼°¡ ¾øÀ¸¸é 0).
LimitÀ» »ý·«Çϸé, ±âº»°ªÀº -1ÀÔ´Ï´Ù. ±âº»°ªÀº Haystack¿¡¼ ¹ß°ßµÈ ÆÐÅÏ¿¡ ºÎÇÕÇÏ¸é ¸ðµÎ ±³Ã¼ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é, Çã¿ëÇÒ ±³Ã¼ÀÇ ÃÖ´ë Ƚ¼ö¸¦ ÁöÁ¤ÇϽʽÿÀ. Haystack¿¡¼ ¸¶Áö¸· ±³Ã¼ ÀÌÈÄÀÇ ¿À¸¥ÂÊ ºÎºÐÀº ¹Ù²îÁö ¾Ê½À´Ï´Ù.
StartingPositionÀÌ »ý·«µÇ¸é, ±âº»°ªÀº 1ÀÔ´Ï´Ù (HaystackÀÇ ½ÃÀÛ). ±×·¸Áö¸¸, 2¸¦ ÁöÁ¤ÇÏ¸é µÎ ¹ø° ¹®ÀÚºÎÅÍ, 3À» ÁöÁ¤ÇÏ¸é ¼¼ ¹ø° ¹®ÀÚºÎÅÍ, µîµî ½ÃÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. StartingPositionÀÌ HaystackÀÇ ±æÀ̸¦ ³Ñ¾î ¼¸é, °Ë»öÀº Haystack ³¡ÀÇ ºó ¹®ÀÚ¿¿¡¼ ½ÃÀ۵˴ϴ٠(°á°úÀûÀ¸·Î ¾Æ¹« ±³Ã¼µµ ¾ø½À´Ï´Ù).
StartingPositionÀÌ 1º¸´Ù ÀÛÀ¸¸é, Haystack ³¡À¸·ÎºÎÅÍ »ó´ë°Å¸®(offset)¶ó°í °£ÁÖÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, 0Àº ¸¶Áö¸· ¹®ÀÚ¿¡¼ ½ÃÀÛÇÏ°í, -1Àº ¸¶Áö¸· ¹®ÀÚ ¹Ù·Î Àü¿¡¼ ½ÃÀÛÇÕ´Ï´Ù. StartingPositionÀÌ HaystackÀÇ ¿ÞÂÊ ³¡À» ³Ñ¾î°¡·Á°í ½ÃµµÇϸé, ¸ðµç HaystackÀÌ °Ë»öµË´Ï´Ù.
StartingPositionÀÇ °ª¿¡ »ó°ü ¾øÀÌ, ¹Ýȯ °ªÀº ¾ðÁ¦³ª HaystackÀÇ ¿ÏÀüÇÑ »çº»ÀÔ´Ï´Ù -- À¯ÀÏÇÑ Â÷ÀÌÁ¡Àº StartingPositionÀÌ 1À̾úÀ» ¶§¿Í ºñ±³ÇÏ¿© ¿ÞÂÊÀÌ Á» ´ú º¯°æµÈ´Ù´Â °ÍÀÔ´Ï´Ù.
[v1.1.04+] ÀÌ ÇÔ¼ö´Â ½ÇÆнà ¿¹¿Ü¸¦ ´øÁú ¼ö ÀÖ½À´Ï´Ù ("ºÎÇÕÀÌ ¹ß°ßµÇÁö ¾ÊÀ½"°ú È¥µ¿ÇÏÁö ¸» °Í). ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â ½ÇÇà½Ã°£ ¿¡·¯¸¦ ÂüÁ¶ÇϽʽÿÀ.
ErrorLevelÀº ´ÙÀ½ Áß Çϳª°¡ ¼³Á¤µË´Ï´Ù:
*
´Â ?, +,
·Î ±³Ã¼ÇÏ°í ¶Ç´Â {0,3}°ú °°ÀÌ Á¦ÇÑ ÇϽʽÿÀ.¼ö½ÄÀÚ¿¡ °üÇÑ °ÍÀº ¿É¼ÇÀ» ÂüÁ¶ÇϽʽÿÀ. ¿¹¸¦ µé¾î "i)abc"¿Í °°Àº °æ¿ì, "abc" ÆÐÅÏ¿¡¼ ´ë¼Ò¹®ÀÚ ±¸ºÐÀ» ²ü´Ï´Ù.
°£´ÜÇÑ ºÎ¹®ÀÚ¿À» ±³Ã¼ÇÏ·Á¸é, StringReplace¸¦ »ç¿ëÇϽʽÿÀ. RegExReplace()º¸´Ù ´õ ºü¸¨´Ï´Ù.
±³Ã¼ÀÇ ÃÖ´ë °³¼ö¸¦ ¾Ë °æ¿ì, ±×°ÍÀ» Limit ¸Å°³º¯¼ö¿¡ ÁöÁ¤ÇÏ¸é ¼öÇ༺´ÉÀÌ Çâ»óµË´Ï´Ù. °Ë»öÀÌ ´õ »¡¸® ³¡³¯ ¼ö ÀÖ½À´Ï´Ù (ÀÌ·¸°Ô ÇÏ¸é ¿¬»êÇÏ´Â µ¿¾È ½Ã½ºÅÛ¿¡ ¸Þ¸ð¸® ºÎÇϵµ ÁÙ¾îµì´Ï´Ù.). ¿¹¸¦ µé¾î, °Å´ëÇÑ ¹®ÀÚ¿ÀÇ ¾ÕÂÊ ±Ùó¿¡ ¿ÀÁ÷ Çϳª¸¸ ºÎÇÕÇÑ´Ù´Â »ç½ÇÀ» ¾Ë°í ÀÖ´Ù¸é, 1·Î Á¦ÇÑÇϽʽÿÀ.
¼öÇ༺´ÉÀ» °³¼±Çϱâ À§ÇØ, ÃÖ±Ù¿¡ »ç¿ëµÈ Á¤±Ô Ç¥Çö½Ä 100°³¸¦ (ÄÄÆÄÀÏµÈ ÇüÅ·Î) ¸Þ¸ð¸®¿¡ ij½¬ÇÕ´Ï´Ù.
¿¬±¸ ¿É¼Ç (S)´Â Á¾Á¾ (¿¹¸¦ µé¾î ȸµ¹ÀÌ ¾È¿¡¼) ¿©·¯ ¹ø »ç¿ëµÇ´Â Á¤±Ô Ç¥Çö½ÄÀÇ ¼öÇ༺´ÉÀ» Çâ»ó½Ãŵ´Ï´Ù.
´ëºÎºÐÀÇ ¹®ÀÚµéÀº abc123°ú °°ÀÌ Á¤±Ô Ç¥Çö½Ä ¾È¿¡ ±âÈ£ ±×´ë·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¸Áö¸¸, \.*?+[{|()^$ ¹®ÀÚµéÀº ¾Õ¿¡ ¿ª»ç¼±À» ¹èÄ¡ÇØ¾ß ±âÈ£·Î º¸ÀÌ°Ô µË´Ï´Ù. ¿¹¸¦ µé¾î, \.´Â ±âÈ£ ±×´ë·Î Á¡ÀÌ°í \\´Â ±âÈ£ ±×´ë·Î ¿ª»ç¼±ÀÔ´Ï´Ù. ÇǽÅÀº \Q...\E¸¦ »ç¿ëÇØ È¸ÇÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î: \QLiteral Text\E
.
Á¤±Ô Ç¥Çö½Ä ¾È¿¡¼, ÅÇ°ú »õÁÙ¹®ÀÚ °°Àº Ư¼ö ¹®ÀÚ´Â ¾×¼¾Æ® (`) ¶Ç´Â ¿ª»ç¼± (\)À¸·Î ÇǽŽÃų ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, `t´Â \t°ú °°½À´Ï´Ù.
Á¤±Ô Ç¥Çö½ÄÀÇ ±âÃʸ¦ ¹è¿ì·Á¸é (¶Ç´Â ÆÐÅÏ ±¸¹®À» ´Ù½Ã »ó±âÇØ º¸°í ½Í´Ù¸é), RegEx °£Æí ÂüÁ¶¼¸¦ Àϵ¶ ÇϽʽÿÀ.
RegExMatch(), RegEx °£Æí ÂüÁ¶¼, Á¤±Ô Ç¥Çö½Ä ¿ÜºÎ¿äû, StringReplace, InStr()
ÅؽºÆ® µ¥ÀÌÅÍÀÇ ±Ù¿ø: FileRead, UrlDownloadToFile, Clipboard, GUI Edit ÄÜÆ®·Ñ
NewStr := RegExReplace("abc123123", "123$", "xyz") ; "abc123xyz"À» µ¹·ÁÁÝ´Ï´Ù. ¿Ö³ÄÇϸé $´Â ³¡¿¡¸¸ ºÎÇÕÀ» Çã¿ëÇϱ⠶§¹®ÀÔ´Ï´Ù. NewStr := RegExReplace("abc123", "i)^ABC") ; "123"À» µ¹·ÁÁÝ´Ï´Ù. ¿Ö³ÄÇÏ¸é ´ë¼Ò¹®ÀÚ ±¸ºÐ ¿É¼ÇÀ» ÅëÇÏ¿© ºÎÇÕ¿¡ ¼º°øÇ߱⠶§¹®ÀÔ´Ï´Ù. NewStr := RegExReplace("abcXYZ123", "abc(.*)123", "aaa$1zzz") ; $1 ¿ªÂüÁ¶¸¦ »ç¿ëÇÏ¿© "aaaXYZzzz"À» µ¹·Á ÁÝ´Ï´Ù. NewStr := RegExReplace("abc123abc456", "abc\d+", "", ReplacementCount) ; ""¸¦ µ¹·ÁÁÖ°í 2¸¦ ReplacementCount¿¡ ÀúÀåÇÕ´Ï´Ù. ; ÀϹÝÀûÀÎ RegEx ¿¹Á¦´Â RegEx °£Æí ÂüÁ¶¼¸¦ Àϵ¶ ÇϽʽÿÀ.