Rating@Mail.ru

Форум сайта "Виртуальная энциклопедия "Linux по-русски"


Текущее время: 24 май 2017, 13:04

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 13 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: регулярные выражения в C/C++
Непрочитанное сообщениеДобавлено: 14 сен 2016, 12:39 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9440
Откуда: Харьков
Olej писал(а):
Здесь вот онлайновый тестер регулярных выражений, который позволяет проверить результат сопоставления, без написания какого-либо программного кода и не используя никакие GNU утилиты: Regex Pal.
Очень удобно при отработке.


И ещё:
RegExrv2.1

И ещё:
0.3.1b built by gskinner.com

Но самое смешное, так это что регулярные выражения, сопоставляются в одном из таких онлайнов, а также grep, egrep и др. - не сопоставляются во всех остальных и наоборот. :-o :-(
В этом смысле показательна фраза (стр.12) из книги Майкла Фицджеральда:
Цитата:
Большинство из указанных реализаций регулярных выражений в чем-то сходны, а в чем-то различаются. Я не могу подробно обсудить все отличия в столь маленькой кни­
ге, но о многих расскажу. Любые попытки задокументировать все различия между все­ ми реализациями наверняка привели бы меня в больницу.

:lol:


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: регулярные выражения в C/C++
Непрочитанное сообщениеДобавлено: 18 ноя 2016, 23:11 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9440
Откуда: Харьков
Сами регулярные выражения, перед их внесением в код C/C++ хорошо бы проверять (отлаживать) ... хотя бы просто потому, что регулярные выражения - уж точно "не фишка" C/C++, не самое сильное место этих языков.
Для этого хорошо бы иметь под рукой тестовый инструмент регулярных выражений.
Я предлагаю использовать в этом качестве sed - потоковый текстовый редактор.
И в упоминаемой там книге Краткий учебник по sed есть Глава 2 - вполне достаточное введение в технику регулярных выражений.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: регулярные выражения в C/C++
Непрочитанное сообщениеДобавлено: 13 май 2017, 09:46 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9440
Откуда: Харьков
Не прошло и пол-года, как возникла ещё раз оказия порепетировать с регулярными выражениями C++, в связи с вот этой проблемой: интерпретатор программного кода (на C++). Но с регулярными выражениями (на любом инструменте их использования: Perl, Python, Ruby, sed, awk, grep, egrep, ...) проблема состоит в том, что для синтаксиса регулярных выражений существует 10000000 стандартов граматики, и никогда не знаешь деталей того, который сейчас используешь.
Вот так же и с библиотекой regex C++:
- она новая, появилась только в стандарте C++11 (2011г.)
- нигде толком не описана (в деталях граматик)
- при создании объектов регулярных выражений можно указать константой в конструкторе 5 (как минимум) различающихся граматик:
Цитата:
basic Basic POSIX grammar
extended Extended POSIX grammar
awk Awk POSIX grammar
grep Grep POSIX grammar
egrep Egrep POSIX grammar

- мелкие детали того, что они понимают под каждой, нигде не описано. :-(

Хоть вот это ;-) : syntax specifications std::ECMAScript syntax
Цитата:
The following syntax is used to construct regex objects (or assign) that have selected ECMAScript as its grammar.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
[ Time : 0.024s | 19 Queries | GZIP : On ]