Софтуерно Инженерство
Loading...
+ Нов въпрос
Luko193 avatar Luko193 342 Точки
Best Answer

Можеш да опиташ този: @"(?<=KZL).*?(?=KZL)", той използва т.нар positive lookbehind и positive lookahead. Тоест взима съдържанието между KZL, аналогично можеш да смениш частта с KZL и да вземеш съдържанието между други тагове например.

0
31/10/2016 19:30:29
KonstantinLupov avatar KonstantinLupov 34 Точки

А при случая с ?? нещо се чупи?

0
Luko193 avatar Luko193 342 Точки

Просто замени KZL в regex-а с ??.

0
stambi4a avatar stambi4a 126 Точки

Ако искаш само имената на държавите м/у ключовите думи KZL с извличане ред по ред, пример

        static void Main(string[] args)
        {
            var text = @"KZL
                fdKZLairagluBKZLKZLkramneDKZL || 2:0
                asdKZLAiRaGlubKZLKZLylaTIKZLkk 1:1";
            var regex = new Regex(@"\b.*?(KZL)(.*?)(KZL)(KZL)(.*?)(KZL).*?(\d+:\d+)");
            var matches = regex.Matches(text);
            foreach (Match match in matches)
            {
                var host = ReverseName(match.Groups[2].Value);
                var visitor = ReverseName(match.Groups[5].Value);
                var result = match.Groups[7].Value;
                Console.WriteLine($"{host} - {visitor} {result}");
            }
        }

        static string ReverseName(string expr)
        {
            return string.Join("", expr.ToCharArray().Reverse()).ToUpper();
        }

Резултати:

BULGARIA - DENMARK 2:0
BULGARIA - ITALY 1:1

Host и visitor ти извличат само съответно държава - домакин и държава - гост.

 

1
KonstantinLupov avatar KonstantinLupov 34 Точки

Благодаря и на двамата за бързата реакция! :) Много помогнахте!

0
KonstantinLupov avatar KonstantinLupov 34 Точки

А пичове, като заменил KZL с ?? нещо се чупи и не зачита ?? както KZL. Идеи?

0