程序库: 用来处理正则表达式的MQL5 RegularExpressions - 页 4

 
leonerd #:

我想知道是否有更简单的方法。不是正则表达式,而是正则表达式掩码(通配符),因为这在各地都被普遍接受。

例如,对于字符过滤器来说

我知道一切都可以用正则表达式来完成,但它的语法更复杂,对用户来说也更困难。

编写自己的过滤器吧。正则表达式已被普遍接受。
 

@MetaQuotes 最好能在 MT5 的下一个版本中加入 RegEx。其他有用的功能包括 JSON 和 XML 解析。对于 JSON,SimdJSON 是针对 CPU 优化的快速库,只有 MT 开发团队才能添加这样的功能。

 

未编译




 

2022.10.27 14:07 下载最新版本

生成:


仍未编译。

//---

请更新代码。

 
Anatoli Kazharski #:

下载最新版本2022.10.27 14:07

生成:


仍未编译。

//---

请更新代码。

请尝试从https://www.mql5.com/zh/code/15242 单独下载 DynamicMatrix.mqh 和 Wrappers.mqh 文件,然后在"\MQL5\Include\Internal\"目录下手动替换它们。

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

尝试从https://www.mql5.com/zh/code/15242 单独下载 DynamicMatrix.mqh 和 Wrappers.mqh 文件,然后在"\MQL5\Include\Internal\"目录下手动替换它们。

这样就成功了。谢谢你们!

如果他们能修复文件被编辑时更新存档的错误就更好了。

 

@MetaQuotes I am hitting conflicts between:

MQL5\Include\RegularExpressions\Regex.mqh

和...

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

及其他。

这很重要,因为其他非 regex 库使用了我列出的标准 MQL5 #includes,当它们一起使用时将无法编译。

//#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

行?

致以我最诚挚的问候,ESB。

 
Earthy Stag beetle 属性

行?

没错。