CCCPaste
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace Algorithms07
{
    class Program
    {
        static void Main(string[] args)
        {
            //ZADANIE 1.
            //Wygenerować napis losowy  złożony z 4 cyfr i 4 liter w dowlnej kolejności.

            Random rnd = new Random();
            int litera=0;
            char[] napis = new char[8];
            do
            {
                litera = 0;
                for (int i = 0; i < 8; i++)
                {
                    napis[i] = (char)rnd.Next(48, 122);
                    if ((napis[i] > 57 && napis[i] < 65) || (napis[i] > 90 && napis[i] < 97))
                    {
                        napis[i] = (char)rnd.Next(48, 122);
                        i--;
                    }
                }
                for(int j = 0; j < 8; j++)
                {
                    if ((napis[j] >= 65 && napis[j] <= 90) || (napis[j] >= 97 && napis[j] <= 122)) litera++;
                }
            } while(litera!=4);
            
            foreach (char i in napis) Console.Write("{0}", i);
            Console.WriteLine();

            //ZADANIE 2.
            //a) Czy podany napis zawiera podciąg złożony kolejno z 3 liter i 2 cyfr.
            /*
            String napisB;
            napisB = String.Join("", napis); 
            if (Regex.IsMatch(napisB, "[0-9]{2}-[0-9]{3} [A-Z]{1}[a-z]*")) Console.WriteLine("True");
            */
            //ZADANIE 3.
            //Dla dowolnego napisu spradzić czy jest on poprawnym adresem 21-500 Biała Podlaska.

            string adres;
            Regex regA = new Regex(@"[0-9]{2}-[0-9]{3} [A-Z]{1}[a-z]*");
            Regex regB = new Regex(@"[0-9]{2}-[0-9]{3} [A-Z]{1}[a-z]* [A-Z]{1}[a-z]*");

            //adres = Console.ReadLine();
            adres = "21-500 Biała Podlaska";
            if(regA.IsMatch(adres) || regB.IsMatch(adres)) Console.WriteLine("Podany adres jest prawidłowy!");
            else Console.WriteLine("Podany adres jest nieprawidłowy!");
            Console.ReadLine();
        }
    }
}