|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|
Своя реализация регулярных выражений. Реалити разработка, как говорится учитесь пока я жив :)16.06.2024, 15:01. Показов 3723. Ответов 21
Метки нет (Все метки)
Итак, для разработки своих будущих проектов мне нужен быстрый парсинг с удобным для меня функционалом. Есть же регулярные выражения скажете вы, да есть, но тоже самое можно сделать намного проще и удобнее и это я вам докажу в этой теме. Кроме того при использовании регулярных выражений из стандартной библиотеки подключаются куча всего разного, что увеличивает исходный код ну и скорость я думаю от этого тоже замедляется. Короче споры тут не уместны я приступаю к разработке своей реализации регулярных выражения на Rust.
На разработку может уйти некоторое время, т.к. я только начинаю писать на Rust, приходится попутно всё изучать, кроме того у меня есть и другие дела, проекты, так же при решении тех или иных микро задач будут возникать трудности, которые я обычно обдумываю занимаясь другими делами, даже когда отдыхаю, смотрю например кино и тд., мне может придти мысль как что можно сделать и затем проверяю это, поэтому всё будет делаться по мере возможности. Но думаю за пару месяцев +- управлюсь. Назову модуль пока notch, потом название возможно поменяется. Первоначально надо придумать синтаксис для поиска подстрок: > - начало строки, в начале(как^); < - конец строки, в конце(как $); s - пробел(как \s); t - табуляция(как \t); n - (NL) новая строка(как \n); c - (CR) возврат каретки(как \r); i - число integer(как \d); f - число с точкой float; l - буква(как \w); L - заглавная буква; w - слово; W - слово заглавными буквами; m - спецсимвол; a - любой символ(как .); {text} - конкретный текст; [zzz] - возможные совпадения(подразумевается "или"), где zzz - шаблон; (zzz) - захват подстроки, где zzz - шаблон; * - ноль или более раз повторов; + - один или более раз повторов; *n - ноль или более раз, но не более n; +n - один или более раз, но не более n; :n - где n - количество раз повторов; ! - отрицание совпадения; | - или; ?zzz? - проверка, где zzz - шаблон #n - захваченная подстрока Данный синтаксис придумал только что при написании этого сообщения, возможно потом поменяю, что-то добавлю... Я сделал так чтобы было без использования управляющих символов \n,\r,\s,\w и тд. а использовались простые буквы, ведь это просто шаблон, в котором мы можем описать искомые символы своими значениями и синтаксисом для логики. Старался сделать так чтобы было привычно и более удобнее чем в существующих регулярных выражениях. Правда есть нюанс. Как указывать конкретный спецсимвол который используется в синтаксисе шаблона: *+:!|?#(){}[] Я над этим вопросом ещё подумаю, может выбрать какой либо спецсимвол после которого писать нужный, например ~: ~({нужный ~{мне~} текст}~) - то есть будет искаться "(нужный {мне} текст)" в круглых скобках с фигурными внутри конкретного текста ~#[iL]:4 - что будет соответствовать "#00AB" двухбайтному числу в шестнадцатеричной форме возможно так и сделаю, но это не точно
1
|
|
| 16.06.2024, 15:01 | |
|
Ответы с готовыми решениями:
21
Реализация алгоритма поиска в http ответе с помощью регулярных выражений Как оптимизировать применение регулярных выражений
|
|
Заблокирован
|
|
| 23.06.2024, 14:23 | |
|
Помню какой-то популярный фреймворк на расте, где парсер был написан на racket. Использовал языки по назначению. Вот что значит таргетирование)
2
|
|
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,018
|
|
| 24.06.2024, 13:12 | |
|
0
|
|
| 24.06.2024, 13:12 | |
|
Помогаю со студенческими работами здесь
22
Объясните, как работает грамматика регулярных выражений ECMAScript
Как с помощью регулярных выражений можно разделить строку на подстроки? Как преобразовать текстовый файл в html с помощью регулярных выражений? Как преобразовать текстовый файл в html с помощью регулярных выражений? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|