Разбить на лексемы - C#

Узнай цену своей работы

Формулировка задачи:

Есть код с квадратным уравнением.Необходимо разбить его на лексемы и вывести каждую на новой строке.Гарантируется, что исходное выражение корректно.Помогите или хотя бы совет с чего начать. Как вариант дать пример простого когда с разбитием его на лексемы, дальше сам попробую.

Решение задачи: «Разбить на лексемы»

textual
Листинг программы
using System;
using System.Text.RegularExpressions;
 
namespace ConsoleApplication9
{
    class Program
    {
        static void Main()
        {
            string s = @"x^2+8x-16";
            const string pattern = @"(.*)x\^2\s*([+-].*)x\s*([+-].*)";
            var res = Regex.Match(s, pattern);
            Func<Group, int, int> convert = (g, i) => string.IsNullOrWhiteSpace(g.ToString()) ? i : int.Parse(g.ToString());
            Console.WriteLine("a = {0}\nb = {1}\nc = {2}", convert(res.Groups[1], 1), convert(res.Groups[2], 1),
                              convert(res.Groups[3], 0));
            Console.ReadKey();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.667 из 5