Библиотеки: RegularExpressions на MQL5 для работы с регулярными выражениями - страница 4

 
leonerd #:

Интересно, а есть что-то попроще. Не регулярки, а обычные маски (wildcard), как это везде общепринято.

Например, для фильтра символов:

Понимаю, что всё можно сделать с регулярками, но там сложнее синтаксис и для юзера сложнее.

Напишите свои фильтры. А регулярные выражения как раз и общепринятые.
 

@MetaQuotes Было бы хорошо, если бы этот RegEx был включен в следующую версию MT5. Другими полезными будут парсинг JSON и XML. Для JSON есть SimdJSON - это самая быстрая библиотека, оптимизированная под CPU, и только команда разработчиков MT может добавить такую возможность.

 

не компилируется




 

Скачал последнюю версию за 2022.10.27 14:07

Билд:


Всё ещё не компилируется.

//---

Обновите, пожалуйста, код.

 
Anatoli Kazharski #:

Скачал последнюю версию за 2022.10.27 14:07

Билд:


Всё ещё не компилируется.

//---

Обновите, пожалуйста, код.

Попробуйте отдельно скачать файлы DynamicMatrix.mqh и Wrappers.mqh из https://www.mql5.com/ru/code/15242, а затем вручную заменить их в каталоге "\MQL5\Include\Internal\"

RegularExpressions на MQL5 для работы с регулярными выражениями
RegularExpressions на MQL5 для работы с регулярными выражениями
  • www.mql5.com
Регулярные выражения предоставляют формальный язык для быстрой и гибкой обработки текста. Каждое регулярное выражение является шаблоном(маской), для которого обработчик регулярных выражений пытается найти совпадения в исходном текстом. Шаблон состоит из односимвольных или многосимвольных литералов, операторов или конструкций.
 
Alexey Petrov #:

Попробуйте отдельно скачать файлы DynamicMatrix.mqh и Wrappers.mqh из https://www.mql5.com/ru/code/15242, а затем вручную заменить их в каталоге "\MQL5\Include\Internal\"

Получилось. Спасибо!

Было бы неплохо, если бы исправили ошибку обновления архивов, если файлы были отредактированы.

 

@MetaQuotes Я сталкиваюсь с конфликтами между:

MQL5\Include\RegularExpressions\Regex.mqh

и...

MQL5\Include\Internal\IComparable.mqh
MQL5\Include\Generic\Interfaces\IComparable.mqh

и другие.

Это важно, потому что другие нерегексовые библиотеки используют стандартные #includes MQL5, которые я перечислил, и не будут компилироваться, если использовать их вместе.

//#define REGEX_CLASH_INCLUDE
#ifdef  REGEX_CLASH_INCLUDE
#include <RegularExpressions\Regex.mqh
#endif
#include <Generic\HashMap.mqh>
#include <Generic\Internal\DefaultEqualityComparer.mqh>
#include <Generic\Interfaces\IComparable.mqh>
#include <Generic\Internal\CompareFunction.mqh>


void OnStart()
{
   printf("Hello world!");
}

Скрипт будет собран с закомментированным #define. Однако если вы откомментируете #define и попытаетесь собрать скрипт, то увидите что-то вроде следующего:

Я был бы очень благодарен за обходной путь или исправление этого, пожалуйста.

MetaQuotes
  • 2023.10.06
  • www.mql5.com
Trader's profile
 
Earthy Stag beetle #:

Я был бы очень благодарен за обходной путь или исправление этого, пожалуйста.

namespace REGULAR
{
  #include <RegularExpressions\Regex.mqh> // удалите эти строки: #property strict
}

#include <Generic\HashMap.mqh>
#include <Generic\Internal\DefaultEqualityComparer.mqh>
#include <Generic\Interfaces\IComparable.mqh>
#include <Generic\Internal\CompareFunction.mqh>

void OnStart()
{
   printf("Hello world!");
}
 

Спасибо, fxsaber,

Хотя я и надеялся, но не ожидал ответа - особенно так быстро.

Я полагаю, вы имеете в виду удаление

#property strict

из всех заголовочных файлов regex?

С наилучшими пожеланиями, ESB.

 
Earthy Stag beetle #property strict

из всех заголовочных файлов regex?

Верно.