Написать регулярное выражение на C#

Отменен
Заказ
6476032
Раздел
Математические дисциплины
Предмет
Теория алгоритмов и автоматов
Антиплагиат
Не указан
Срок сдачи
27 Дек 2024 в 19:00
Цена
1 000 ₽
Блокировка
10 дней
Размещен
27 Дек 2024 в 17:30
Просмотров
28
Описание работы

Мне нужно на С# написать регулярное выражение, которое будет проверять на корректность следующую строку


На вход программы подается единственная строка символов. Данная строка задает присваивание переменной значения арифметического выражения в виде

ПЕРЕМЕННАЯ = ВЫРАЖЕНИЕ.

Выражение может включать:

– знаки сложения и умножения («+» и «*»);

– круглые скобки («(» и «)»);

– константы (например, 5; 3.8; 1e+18, 8.41E-10);

– имена переменных (последовательности букв и цифр, начинающиеся с буквы).

Программа должна с помощью регулярного выражения проверить,

является ли заданное входное выражение корректным


Необходимо регулярное выражение сделать так, чтоб была возможность смотреть вперёд или назад (я тут не понимаю, но сказали, что это нужно)


И чтоб регулярное выражение выглядело по структуре примерно так

const string pattern = @"^

(?:

(?:

(?: (?<=^|,|\[) (?[a-z]+) (?=,|\[|\]) ) |

(?: (?<=,|\[) (?\d+) (?=,|\]) ) |

(?: (?<=[a-z]|\d|\]) (?,) (?=[a-z]|\d) ) |

(? (?<=[a-z]) (?\[) (?=[a-z]|\d) ) |

(? (?<=[a-z]|\d|\]) (?\]) (?=,|\]|$) )

)+

(?(level)(?!))

)$";


Была проверка сбалансированности скобок и прочее


Пробелы могут быть а могут и не быть во входной строке


Они могут быть вначале строки, перед переменными после переменных, а могут не быть


Аналогично пробелы могут быть или не быть перед числами, операторами, скобками, знаком =


Главное, чтоб пробелы не были возможны внутри переменных и внутри чисел


То есть 10 . 5 неверно, или 1 . 1 e-10 тоже не верно, должно быть 10.5 и 1.1e-10


Надеюсь понятно объяснил задание, нужно срочно


В методических указаниях это Лабораторная работа 2 вариант 2


В презентации пример на предпоследнем (56) слайде


Пример корретной входной строки

COST=((11.15+1.1e-25)*1.4e-10)+1*1e10


или


COST = ( ( 11.15 + 1.1e-25 ) * 1.4e-10 ) + 1 * 1e10


или


COST=(11.15+1.1e-25)* 1.4e-10 + 1 * 1e10


или


res1 =15*(1.15+1e10) + 2.2e-15 * (22.5 + 17e+10)


Пример некорректной строки


re s 1 = 1 5 * так как пробелы не должны быть внутри переменных или чисел


res1=(((((15.e10) так как несбалансированные скобки и ещё не может быть 15.e10 может быть 15.0e10 или 15.15e-10 и прочее, то есть не может быть число 1. и пусто

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.96
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир