¹®ÀÚ¿¿¡ ÆÐÅÏÀÌ ´ã°Ü ÀÖ´ÂÁö ¾Ë¾Æ³À´Ï´Ù (Á¤±Ô Ç¥Çö½Ä).
FoundPos := RegExMatch(Haystack, NeedleRegEx [, UnquotedOutputVar = "", StartingPosition = 1])
¿ªÁÖ : Á¤±ÔÇ¥Çö½ÄÀ¸·Î ¸ñÇ¥ ¹®ÀÚ¿¿¡¼ ÆÐÅÏÀ» ã´Â °ÍÀ»
°ÇÃÊ´õ¹Ì(Haystack)¿¡¼ ¹Ù´Ã(NeedleRegEx)À» ã´Â °Í¿¡ºñÀ¯ÇÔ.
RegExMatch()´Â ¹®ÀÚ¿ Haystack¿¡ NeedleRegEx°¡ ³ªÅ¸³ °¡Àå ¿ÞÂÊÀÇ À§Ä¡¸¦ µ¹·ÁÁÝ´Ï´Ù. À§Ä¡°¡ 1À̸é ù ¹ø° ¹®ÀÚÀÔ´Ï´Ù. ÆÐÅÏÀÌ ¹ß°ßµÇÁö ¾ÊÀ¸¸é 0À» µ¹·ÁÁÝ´Ï´Ù. ¿¡·¯°¡ ÀϾ¸é (NeedleRegEx ¾È¿¡¼ ±¸¹® ¿¡·¯°¡ ÀϾ¸é), ºó ¹®ÀÚ¿ÀÌ ¹ÝȯµË´Ï´Ù. ErrorLevelÀº 0 ´ë½Å¿¡ ¾Æ·¡ÀÇ °ª Áß Çϳª°¡ »ç¿ëµË´Ï´Ù.
³»¿ëÀ» °Ë»öÇÒ ¹®ÀÚ¿.
°Ë»ö ÇÒ ÆÐÅÏ, ÆÞ-ȣȯÀÇ Á¤±Ô Ç¥Çö½ÄÀÔ´Ï´Ù (PCRE). ÆÐÅÏÀÇ ¿É¼ÇÀº ¹®ÀÚ¿ óÀ½¿¡ Æ÷ÇÔÇØ¾ß ÇÏ°í ±× ´ÙÀ½¿¡ ´Ý´Â ¹Ý°ýÈ£°¡ µû¶ó ¿É´Ï´Ù. ¿¹¸¦ µé¾î, ÆÐÅÏ "i)abc.*123"´Â ´ë¼Ò¹®ÀÚ ºñ±¸ºÐ ¿É¼ÇÀ» ÄÑ°í "abc"¸¦ °Ë»ö ÇÑ ´ÙÀ½, 0°³ ÀÌ»óÀÇ ¹®ÀÚ¸¦ °Ë»öÇÏ°í, ´ÙÀ½¿¡ "123"À» °Ë»öÇÕ´Ï´Ù. ¿É¼ÇÀÌ ¾ø´Ù¸é, ")"´Â ¼±ÅÃÀûÀÔ´Ï´Ù; ¿¹¸¦ µé¾î, ")abc"´Â "abc"¿Í µ¿µîÇÕ´Ï´Ù.
Mode 1 (±âº»°ª): OutputVar´Â ÇÑ µû¿ÈÇ¥¸¦ Á¦°ÅÇÑ º¯¼öÀÔ´Ï´Ù. ±× ¾È¿¡´Ù Àüü ÆÐÅÏ¿¡ ºÎÇÕÇÑ Haystack ºÎºÐÀ» ÀúÀåÇÕ´Ï´Ù. ÆÐÅÏÀÌ ¹ß°ßµÇÁö ¾ÊÀ¸¸é (Áï, ÇÔ¼ö°¡ 0À» µ¹·ÁÁÖ¸é), ÀÌ º¯¼ö¿Í ¸ðµç ¹è¿ ¿ø¼Ò´Â ºñ¿öÁý´Ï´Ù.
³ªÆ÷ ºÎÆÐÅÏÀÌ NeedleRegEx ¾È¿¡ Á¸ÀçÇϸé, ±×¿¡ ºÎÇÕÇÑ °ÍµéÀº ¹ÙÅÁ À̸§ÀÌ OutputVarÀÎ ÀÇ»ç-¹è¿¿¡ ÀúÀåµË´Ï´Ù. ¿¹¸¦ µé¾î, º¯¼öÀÇ À̸§ÀÌ Match¶ó¸é, ù ºÎÆÐÅÏ¿¡ ºÎÇÕÇÏ´Â ºÎ¹®ÀÚ¿Àº Match1¿¡ ÀúÀåµÇ°í, µÎ ¹ø°´Â Match2¿¡ ÀúÀåµË´Ï´Ù, µîµî. ÀÌ¿¡ ´ëÇÑ ¿¹¿Ü´Â À̸§ ºÙÀÎ ºÎÆÐÅÏÀÔ´Ï´Ù: ¼ýÀÚ°¡ ¾Æ´Ï¶ó À̸§À¸·Î ÀúÀåµË´Ï´Ù. ¿¹¸¦ µé¾î, À̸§ºÙÀÎ ºÎÆÐÅÏ"(?P<Year>\d{4})" ¿¡ ºÎÇÕÇÑ ºÎ¹®ÀÚ¿Àº MatchYear¿¡ ÀúÀåµË´Ï´Ù. ƯÁ¤ÇÑ ºÎÆÐÅÏÀÌ ÀüÇô ºÎÇÕÇÏÁö ¾ÊÀ¸¸é (Áï, ÇÔ¼ö°¡ 0À» µ¹·ÁÁÖ¸é), ±×¿¡ »óÀÀÇÏ´Â º¯¼ö´Â ºñ¿öÁý´Ï´Ù.
ÇÔ¼ö ¾È¿¡¼, Áö¿ªÀÌ ¾Æ´Ñ Àü¿ª ÀÇ»ç ¹è¿À» »ý¼ºÇÏ·Á¸é, ÀÇ»ç ¹è¿ÀÇ ¹ÙÅÁ À̸§À» »ç¿ëÇϱâ Àü¿¡ (¿¹, Match) Àü¿ª º¯¼ö·Î ¼±¾ð ÇϽʽÿÀ. Àü¿ª-°£ÁÖ ÇÔ¼ö¿¡ ´ëÇÏ¿© ±× ¹Ý´ëµµ ¸¶Âù°¡ÁöÀÔ´Ï´Ù. ±×·¸Áö¸¸, ÈçÇÑ È¥¶õÀÇ ±Ù¿ø ¶§¹®¿¡ °¢ ¿ø¼Ò¸¶´Ù ¼±¾ðÇÒ ÇÊ¿ä°¡ ÀÖ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù.
Mode 2 (À§Ä¡¿Í ±æÀÌ): ´ë¹®ÀÚ P°¡ RegExÀÇ ¿É¼Ç¿¡ Á¸ÀçÇϸé -- ¿¹¸¦ µé¾î "P)abc.*123" --Àüü ÆÐÅÏ ºÎÇÕÀÇ ±æÀÌ°¡ OutputVar¿¡ ÀúÀåµË´Ï´Ù (ºÎÇÕÀÌ ¾øÀ¸¸é 0). ³ªÆ÷ ºÎÆÐÅÏÀÌ Á¸ÀçÇϸé, ±× À§Ä¡¿Í ±æÀÌ°¡ µÎ °³ÀÇ ÀÇ»ç-¹è¿¿¡ ÀúÀåµË´Ï´Ù: OutputVarPos ±×¸®°í OutputVarLen. ¿¹¸¦ µé¾î, º¯¼öÀÇ ¹ÙÅÁ À̸§ÀÌ Match¶ó¸é, ù ºÎÆÐÅÏ ºÎÇÕÀÇ À§Ä¡°¡ 1-±â¹ÝÀ¸·Î MatchPos1¿¡ ÀúÀåµÇ°í, ±×ÀÇ ±æÀÌ´Â MatchLen1¿¡ ÀúÀåµË´Ï´Ù (ºÎÆÐÅÏ¿¡ ºÎÇÕÀÌ ¾ø°Å³ª ÇÔ¼ö°¡ 0À» µ¹·ÁÁÖ¸é 0ÀÌ ÀúÀåµË´Ï´Ù). ÀÌ¿¡ ´ëÇÑ ¿¹¿Ü´Â À̸§ºÙÀÎ ºÎÆÐÅÏÀÔ´Ï´Ù: ¼ýÀÚ°¡ ¾Æ´Ï¶ó À̸§À¸·Î ÀúÀåµË´Ï´Ù (¿¹, MatchPosYear ±×¸®°í MatchLenYear).
Mode 3 (ÀÏÄ¡ °´Ã¼) [v1.1.05+]: ´ë¹®ÀÚ O°¡ RegEx ¿É¼Ç¿¡ Á¸ÀçÇϸé -- ¿¹¸¦ µé¾î "O)abc.*123" -- ÀÏÄ¡ °´Ã¼°¡ UnquotedOutputVar¿¡ ÀúÀåµË´Ï´Ù. ÀÌ °´Ã¼¸¦ »ç¿ëÇϸé Àüü ºÎÇÕ°ú ³ªÆ÷µÈ ºÎÆÐÅÏ °¢°¢ÀÇ À§Ä¡¿Í ±æÀÌ ±×¸®°í °ªÀ» ¿¶÷ÇÒ ¼ö ÀÖ½À´Ï´Ù.
StartingPositionÀ» »ý·«ÇÏ¸é ±âº»°ªÀº 1ÀÔ´Ï´Ù (HaystackÀÇ ½ÃÀÛ). ±×·¸Áö ¾ÊÀ¸¸é, 2¸¦ ÁöÁ¤ÇØ µÎ ¹ø° ¹®ÀÚ¿¡¼ ½ÃÀÛÇϰųª 3À» ÁöÁ¤ÇØ ¼¼ ¹ø° ¹®ÀÚ¿¡¼ ½ÃÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. µîµî. StartingPositionÀÌ HaystackÀÇ ±æÀ̸¦ ³Ñ¾î °¡¸é, °Ë»öÀº Haystack ³¡ÀÇ ºó ¹®ÀÚ¿¿¡¼ ½ÃÀÛÇÕ´Ï´Ù (ÀüÇüÀûÀ¸·Î ºÎÇÕ °á°ú°¡ ¾ø½À´Ï´Ù).
StartingPositionÀÌ º¸´Ù ÀÛÀ¸¸é, Haystack ³¡À¸·ÎºÎÅÍÀÇ »ó´ë°Å¸®°í °£ÁÖÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, 0Àº ¸¶Áö¸· ¹®ÀÚ¿¡¼ ½ÃÀÛÇÏ°í, -1Àº ¸¶Áö¸· ¹®ÀÚ ¹Ù·Î ¾Õ¿¡¼ ½ÃÀÛÇÕ´Ï´Ù. StartingPositionÀÌ HaystackÀÇ ¿ÞÂÊ ³¡À» ³Ñ¾î¼ ½ÃµµÇϸé, ¸ðµç HaystackÀ» °Ë»öÇÕ´Ï´Ù.
StartingPositionÀÇ °ª¿¡ »ó°ü¾øÀÌ, ¹Ýȯ °ªÀº ¾ðÁ¦³ª HaystackÀÇ Ã¹ ¹®ÀÚ¿¡ »ó´ëÀûÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, "123abc789"¿¡¼ "abc"ÀÇ À§Ä¡´Â ¾ðÁ¦³ª 4ÀÔ´Ï´Ù.
[v1.1.04+] ÀÌ ÇÔ¼ö´Â ½ÇÆнà ¿¹¿Ü¸¦ ´øÁú ¼ö ÀÖ½À´Ï´Ù ("ºÎÇÕ ¾øÀ½"°ú È¥µ¿ÇÏÁö ¸¶½Ê½Ã¿À). ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â ½ÇÇà½Ã°£ ¿¡·¯¸¦ ÂüÁ¶ÇϽʽÿÀ.
ErrorLevelÀº ´ÙÀ½ °ªÁß Çϳª°¡ ¼³Á¤µË´Ï´Ù:
¼ö½ÄÀÚ¿¡ °üÇؼ Options¸¦ ÂüÁ¶ÇϽʽÿÀ. ¿¹¸¦ µé¾î "i)abc"¿Í °°Àº °æ¿ì, ÆÐÅÏ "abc"¿¡ ´ë¼Ò¹®ÀÚ ±¸ºÐÀ» ²ü´Ï´Ù.
´ë¹®ÀÚ O°¡ RegEx ¿É¼Ç¿¡ Á¸ÀçÇϸé, ÀÏÄ¡ °´Ã¼°¡ UnquotedOutputVar¿¡ ÀúÀåµË´Ï´Ù. ÀÌ °´Ã¼´Â ´ÙÀ½°ú °°Àº Ư¼ºÀ» ¼ÒÀ¯ÇÕ´Ï´Ù:
Match.Pos(N): ³ªÆ÷µÈ ºÎÆÐÅÏ ¶Ç´Â Àüü ºÎÇÕÀÇ À§Ä¡¸¦ µ¹·ÁÁÝ´Ï´Ù.
Match.Len(N): ³ªÆ÷µÈ ºÎÆÐÅÏ ¶Ç´Â Àüü ºÎÇÕÀÇ ±æÀ̸¦ µ¹·ÁÁÝ´Ï´Ù.
Match.Value(N): ³ªÆ÷µÈ ºÎÆÐÅÏ ¶Ç´Â Àüü ºÎÇÕÀ» µ¹·ÁÁÝ´Ï´Ù.
Match.Name(N): ÁÖ¾îÁø ºÎÆÐÅÏÀÇ À̸§À» µ¹·ÁÁÝ´Ï´Ù
Match.Count(): ºÎÆÐÅÏÀÇ Àüü °³¼ö¸¦ µ¹·ÁÁÝ´Ï´Ù.
Match.Mark(): ¸¶Áö¸·À¸·Î ¸¸³ (*MARK:NAME)
ÀÇ NAMEÀ» µ¹·ÁÁÝ´Ï´Ù.
Match[N]: NÀÌ 0À̰ųª À¯È¿ÇÑ ºÎÆÐÅÏ ¹øÈ£ ¶Ç´Â À̸§À̶ó¸é, ÀÌ°ÍÀº Match.Value(N)
°ú µ¿µîÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é, NÀº À§ÀÇ Æ¯¼ºÀÇ À̸§ Áß ÇϳªÀÏ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, Match["Pos"]
±×¸®°í Match.Pos
´Â Match.Pos()
¿Í µ¿µîÇÕ´Ï´Ù. ´Ü, À̸§ÀÌ "Pos"ÀÎ ºÎÆÐÅÏÀÌ Á¸ÀçÇÏ¸é ¿¹¿ÜÀÔ´Ï´Ù. ÀÌ °æ¿ì Match.Value("Pos")
¿Í µ¿µîÇÕ´Ï´Ù.
Match.N: À§¿Í °°½À´Ï´Ù. ´Ü, NÀÌ ÀοëºÎÈ£¸¦ ºÙÀÌÁö ¾ÊÀº À̸§À̰ųª ¼ýÀÚÀÎ °æ¿ì´Â ¿¹¿ÜÀÔ´Ï´Ù.
À§ÀÇ ¸ðµç Ư¼º¿¡ ´ëÇÏ¿©, NÀº ´ÙÀ½ Áß Çϳª°¡ µÉ ¼ö ÀÖ½À´Ï´Ù:
NÀ» ÁöÁ¤ÇÏ¸é ¹Ý°ýÈ£ () ´ë½Å¿¡ °¢°ýÈ£ []¸¦ »ç¿ëÇصµ µË´Ï´Ù.
¹®ÀÚ¿ ¾È¿¡¼ °£´ÜÇÑ ºÎ¹®ÀÚ¿À» °Ë»öÇÏ·Á¸é InStr()À» »ç¿ëÇϽʽÿÀ. ¿Ö³ÄÇϸé RegExMatch()º¸´Ù ´õ ºü¸£±â ¶§¹®ÀÔ´Ï´Ù.
¼öÇ༺´ÉÀ» °³¼±Çϱâ À§ÇÏ¿©, ÀÚÁÖ »ç¿ëµÇ´Â Á¤±Ô Ç¥Çö½Ä 100°³¸¦ ¸Þ¸ð¸®¿¡ (ÄÄÆÄÀÏµÈ ÇüÅ·Î) ij½¬ÇÕ´Ï´Ù.
¿¬±¸ ¿É¼Ç (S)À¸·Î Á¾Á¾ (¿¹¸¦ µé¾î ȸµ¹ÀÌ ¾È¿¡¼) ¸¹ÀÌ »ç¿ëµÇ´Â Á¤±Ô Ç¥Çö½ÄÀÇ ¼öÇ༺´ÉÀ» °³¼±½Ãų ¼ö ÀÖ½À´Ï´Ù.
ºÎÆÐÅÏ¿¡ À̸§À» ºÎ¿©ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ÆÐÅÏ "(?P<Year>\d{4})"¿¡ ´Ü¾î Year°¡ ºÎ¿© µÇ¾î ÀÖ½À´Ï´Ù. À̸§Àº ÃÖ´ë 32°³ÀÇ ¾ËÆĺª¼ýÀÚ¿Í ¹ØÁÙ ¹®ÀÚ·Î ±¸¼ºµÇ´Ï´Ù. ´ÙÀ½ Á¦ÇÑÀº "O" (ÀÏÄ¡ °´Ã¼) ¸ðµå¿¡ Àû¿ëµÇÁö ¾Ê½À´Ï´Ù. À̸§ ºÙÀÎ ºÎÆÐÅϵµ RegEx ¿¬»ê ÀÚü¿¡¼ ¼ýÀÚ·Î ÂüÁ¶ÇÒ ¼ö ÀÖÁö¸¸ (¿¹, \1Àº ù ³ªÆ÷ ÆÐÅÏ¿¡ ½ÇÁ¦·Î ºÎÇÕÇÑ ¹®ÀÚ¿À» °¡¸®Å°´Â ¿ªÂüÁ¶ÀÔ´Ï´Ù), (¼ýÀÚ°¡ ¾Æ´Ï¶ó) À̸§À¸·Î¸¸ Ãâ·Â ÀÇ»ç-º¯¼ö¿¡ ÀúÀåµË´Ï´Ù. ¿¹¸¦ µé¾î, "Year"°¡ ù ¹ø° ºÎÆÐÅÏÀ̶ó¸é, OutputVarYearÀº ±× ºÎÇÕÇÑ ºÎ¹®ÀÚ¿ÀÌ ¼³Á¤µÇÁö¸¸, OutputVar1Àº ÀüÇô ¹Ù²îÁö ¾Ê½À´Ï´Ù (ÀÌÀü °ªÀ» ±×´ë·Î À¯ÁöÇÕ´Ï´Ù). ±×·¸Áö¸¸, À̸§¾ø´Â ºÎÆÐÅÏÀÌ "Year" ´ÙÀ½¿¡ ÀϾ¸é, ±×°ÍÀº OutputVar1ÀÌ ¾Æ´Ï¶ó OutputVar2¿¡ ÀúÀåµË´Ï´Ù.
abc123¿Í °°ÀÌ ´ëºÎºÐÀÇ ¹®ÀÚ´Â Á¤±Ô Ç¥Çö½Ä ¾È¿¡ ±âÈ£ ±×´ë·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¸Áö¸¸, \.*?+[{|()^$¿Í °°Àº ¹®ÀÚ´Â ¹Ýµå½Ã ¾Õ¿¡ ¿ª»ç¼±À» ¹èÄ¡ÇØ¾ß ¹®ÀÚ ±×´ë·Î º¸¿©Áö°Ô µË´Ï´Ù. ¿¹¸¦ µé¾î, \.´Â ¹®ÀÚ ±×´ë·ÎÀÇ Á¡ÀÌ°í \\´Â ±âÈ£ ±×´ë·ÎÀÇ ¿ª»ç¼±ÀÔ´Ï´Ù. ÇǽÅÀº \Q...\EÀ» »ç¿ëÇÏ¿© ´ë½ÅÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î: \QLiteral Text\E
.
Á¤±Ô Ç¥Çö½Ä ¾È¿¡¼, ÅÇ°ú »õÁÙ °°Àº Ư¼ö ¹®ÀÚµéÀº ¾×¼¾Æ® (`) ¶Ç´Â ¿ª»ç¼± (\)À¸·Î ÇǽŽÃų ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, `t´Â \t¿Í °°½À´Ï´Ù. ´Ü, x ¿É¼ÇÀÌ »ç¿ëµÈ °æ¿ì´Â ¿¹¿ÜÀÔ´Ï´Ù.
Á¤±Ô Ç¥Çö½ÄÀÇ ±âº»À» ¹è¿ì·Á¸é (¶Ç´Â ÆÐÅÏ ±¸¹®À» »õ·Ó°Ô ±â¾ïÇØ º¸·Á¸é), RegEx °£Æí ÂüÁ¶¼¸¦ ÂüÁ¶ÇϽʽÿÀ.
¿ÀÅäÇÖÅ°ÀÇ Á¤±Ô Ç¥Çö½ÄÀº ÆÞ-ȣȯÀÇ Á¤±Ô Ç¥Çö½Ä (PCRE)À» »ç¿ëÇÏ¿© ±¸ÇöµÇ¾ú½À´Ï´Ù: www.pcre.org.
RegExReplace(), RegEx Quick Reference, Á¤±Ô Ç¥Çö½Ä ¿ÜºÎ¿äû, InStr(), IfInString, StringGetPos, SubStr(), SetTitleMatchMode RegEx, Àü¿ªÀû ÀÏÄ¡¿Í Grep (Æ÷·³ ¸µÅ©)
ÅؽºÆ® µ¥ÀÌÅ͸¦ ¾ò´Â ÈçÇÑ ¹æ¹ý: FileRead, UrlDownloadToFile, Clipboard, GUI ÆíÁý ÄÜÆ®·Ñ
FoundPos := RegExMatch("xxxabc123xyz", "abc.*xyz") ; 4¸¦ µ¹·ÁÁÝ´Ï´Ù, ºÎÇÕÀÌ ¹ß°ßµÈ À§Ä¡ÀÔ´Ï´Ù. FoundPos := RegExMatch("abc123123", "123$") ; $°¡ ³¡¿¡ ºÎÇÕÇϱ⸦ ¿ä±¸Çϱ⠶§¹®¿¡ 7À» µ¹·ÁÁÝ´Ï´Ù. FoundPos := RegExMatch("abc123", "i)^ABC") ; ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÏÁö ¾Ê´Â ¿É¼ÇÀ» ÅëÇÏ¿© ºÎÇÕÇßÀ¸¹Ç·Î 1À» µ¹·ÁÁÝ´Ï´Ù. FoundPos := RegExMatch("abcXYZ123", "abc(.*)123", SubPat) ; 1À» µ¹·ÁÁÖ°í "XYZ"¸¦ SubPat1¿¡ ÀúÀåÇÕ´Ï´Ù. FoundPos := RegExMatch("abc123abc456", "abc\d+", "", 2) ; ½ÃÀÛ À§Ä¡°¡ 1ÀÌ ¾Æ´Ï¶ó 2À̱⠶§¹®¿¡ 1 ÀÌ ¾Æ´Ï¶ó 7À» µ¹·ÁÁÝ´Ï´Ù.. ; ÀϹÝÀûÀÎ RegEx ¿¹Á¦µéÀº RegEx °£Æí ÂüÁ¶¼¸¦ ÂüÁ¶ÇϽʽÿÀ.