Содержание
- 2. Основные определения Регулярные выражения в алфавите Σ и регулярные множества, которые они обозначают, определяются рекурсивно следующим
- 3. Основные определения Расстановка приоритетов: * (итерация) – наивысший приоритет; конкатенация; + (объединение). Таким образом, 0 +
- 4. Основные определения Леммы: 1) α + β = β + α 2) ∅* = e 3)
- 5. Связь РВ и РМ РМ – языки, порождаемые РВ. Например: x = a+b, y = c+d,
- 6. Связь РВ и РМ Итерация конкатенации и объединения: (xy)* = e + xy + xyxy +
- 7. Связь РВ и РМ Примеры на приоритет: x + yz ⇔ {x, yz}, (x + y)z
- 8. Регулярные системы уравнений Уравнение с регулярными коэффициентами X = aX + b имеет решение (наименьшую неподвижную
- 9. Регулярные системы уравнений Алгоритм решения (метод Гаусса): Шаг 1. Положить i = 1. Шаг 2. Если
- 10. Преобразование ДКА в РВ Для ДКА M = (Q, Σ, δ, q0, F) составим систему с
- 11. Преобразование ДКА в РВ Пример: для числа с фиксированной точкой получим систему q0 = ∅ +
- 12. Преобразование ДКА в РВ Решение: q0 = ∅*(sq1 + pq2 + dq3 + ∅q4 + ∅)
- 13. Преобразование ДКА в РВ Обратный ход: q3 = d*(pq4 + e) = d*(pd* + e), q2
- 14. Преобразование ДКА в РВ Сопоставление графа функции переходов ДКА основным операциям с регулярными выражениями:
- 15. Преобразование ДКА в РВ Более сложные комбинации операций:
- 16. Преобразование ДКА в РВ Для РВ (s + e)(pd+ + d+(pd* + e)):
- 17. Программирование РВ Регулярные выражения: Встроены во многие языки программирования (PHP, JavaScript, …); Реализованы в виде подключаемых
- 18. Программирование РВ Конструкции класса Regex (System.Text.RegularExpressions):
- 19. Программирование РВ
- 20. Программирование РВ
- 21. Программирование РВ
- 22. Программирование РВ
- 23. Программирование РВ
- 24. Программирование РВ
- 25. Программирование РВ
- 26. Программирование РВ Результаты работы Regex:
- 27. Программирование РВ Пример на языке C#:
- 28. Программирование РВ Пример на языке C++ CLI (Visual C++/CLR/Консольное приложение CLR): System::Text::RegularExpressions
- 29. Включение действий и поиск ошибок Ограничение количества значащих цифр в числе: (s + e)(pd+ + d+(pd*
- 30. Включение действий и поиск ошибок Определение позиции ошибки: «+1.2345!678» – ошибка в позиции 8; «!1.2345678» –
- 31. Включение действий и поиск ошибок Определение позиции ошибки: 1. первая позиция входной цепочки (1), если первое
- 32. Включение действий и поиск ошибок «abc.xyz.pqr» – правильно; «+abc.xyz.pqr» – ошибка в позиции 1 («+»); «abc.xyz.pqr!»
- 33. Включение действий и поиск ошибок Но! «abc.xyz.+pqr» – ошибка в позиции 8 («.»). Новый вариант шаблона:
- 35. Скачать презентацию