Подтвердить что ты не робот

С# Regex, чтобы совместить слово с точкой

Быстрая коричневая лиса прыгает через ленивая собака "- это англоязычный панграм, алфавит! то есть фраза который содержит все буквы алфавит. Он был использован для тестирования пишущие машинки. и компьютер клавиатуры и в других приложениях включая все буквы в Английский алфавит.

Мне нужно получить "алфавит". слово в регулярном выражении. В приведенном выше тексте имеется 3 экземпляра. Он не должен включать "алфавит!". Я просто попробовал regex с

 MatchCollection match = Regex.Matches(entireText, "alphabet."); 

но это возвращает 4 экземпляра, включая "алфавит!". Как опустить это и получить только "алфавит".

4b9b3361

Ответ 1

. - специальный символ в регулярном выражении, который соответствует чему-либо. Попробуйте ускользнуть от него:

 MatchCollection match = Regex.Matches(entireText, @"alphabet\.");

Ответ 2

. - специальный символ в регулярных выражениях. Сначала вам нужно избежать его слэш:

Regex.Matches(entireText, "alphabet\\.")

Косой чертой становится двойной, потому что \ внутри строки, в свою очередь, будет сбежать с другой косой чертой.

Ответ 3

"" имеет особое значение в регулярных выражениях. Выбери его в соответствии с периодом

MatchCollection match = Regex.Matches(entireText, @"alphabet\.");

Edit:

Полный код, дающий ожидаемый результат:

        string entireText = @"The quick brown fox jumps over the lazy dog is an English-language pangram, alphabet! that is, a phrase that contains all of the letters of the alphabet. It has been used to test typewriters alphabet. and computer keyboards, and in other applications involving all of the letters in the English alphabet.";
        MatchCollection matches = Regex.Matches(entireText, @"alphabet\.");
        foreach (Match match in matches)
        {
            foreach (Group group in match.Groups)
            {
                Console.WriteLine(group);
            }
        }