Skip to content
Compare
Choose a tag to compare
@3F 3F released this 07 Mar 22:00
ac1f478

💾 Public release. regXwild 1.4

x64 + x32 Unicode + MultiByte modules
MultiByte x64 x86
Unicode x64 x86
📑 Changelog
  • NEW: Modern match() method for ESS implementation with bitwise options:
bool match(const tstring& input, const tstring& pattern, const EngineOptions& options, MatchResult* result);

Searches an input string for a substring that matches a pattern.
Use F_ICASE = 0x001 to ignore case sensitivity when matching.

  • NEW: Implemented >c metasymbol.

Modern > as [^c]str | [^c]$

This is default behavior using match().
To activate legacy > as [^/]str | [^/]$ use F_LEGACY_ANYSP = 0x080

  • NEW: Implemented F_MATCH_RESULT = 0x002 flag to collect additional data for the MatchResult.
EssRxW::MatchResult m;
rxw.match
(
    _T("number = '8888'; //TODO: up"),
    _T("'+'"),
    EssRxW::EngineOptions::F_MATCH_RESULT,
    &m
);
//m.start = 9
//m.end = 15
  • NEW: Added replace() method for ESS implementation.
bool replace(tstring& input, const tstring& pattern, const tstring& replacement, const EngineOptions& options);

In a specified input, replaces first substring that match a specified pattern with a specified replacement string.

  • NEW: Implemented optional offset for match() and replace() methods. ESS impl.
bool replace(tstring& input, const tstring& pattern, const tstring& replacement, udiff_t offset, const EngineOptions& options)
bool match(const tstring& input, const tstring& pattern, udiff_t offset, const EngineOptions& options, MatchResult* result)

udiff_t offset - The starting position to start matching.

  • NEW: Implemented F_MATCH_ALL = 0x004. Do not finish on first match in replace() method.

  • NEW: New C-export functions in common.h PE/Invoke or other outside environments.

bool replace(TCHAR* input, const TCHAR* pattern, const TCHAR* replacement, flagcfg_t options);    
bool replaceOfs(TCHAR* input, const TCHAR* pattern, const TCHAR* replacement, udiff_t offset, flagcfg_t options);    
bool match(const TCHAR* input, const TCHAR* pattern, flagcfg_t options, EssRxW::MatchResult* result);    
bool matchOfs(const TCHAR* input, const TCHAR* pattern, udiff_t offset, flagcfg_t options, EssRxW::MatchResult* result);    
bool replaceTo(const TCHAR* input, const TCHAR* pattern, const TCHAR* replacement, TCHAR* to, udiff_t offset, flagcfg_t options);
  • FIXED: Fixed SINGLE ms for +++ and system+ or like.

  • FIXED: Fixed END ms $ and BEGIN ms ^ when using other available ms.

  • FIXED: Fixed ##?? ++?? for " = 12" -> "= 123".

  • FIXED: Fixed an early return when matching.

  • FIXED: Fixed Compiler Error such C2758 etc for C99/MSVC10 compilers (VS2010).

  • FIXED: Fixed NuGet package use for native C/C++ projects.

  • CHANGED: Implemented MS combinations for END $ such as *$, ??$, +$.

  • CHANGED: Implemented MS combinations for BEGIN ^ such as ^+, ^#, ^?.

  • CHANGED: Added aliases EssRxW/ExtRxW/RxW to the main algorithms.

  • CHANGED: Added RXW_UNICODE for user targets when CharacterSet is Unicode.

  • CHANGED: AlgorithmEss::search() was marked as obsolete and can be removed in future major versions.

  • CHANGED: regXwildAPI.h was marked as obsolete. Please use regXwild.common.h or regXwild.h.

  • CHANGED: Most our types are spaced now as regXwild::rxwtypes.

  • NOTE: You can find various flexible use for .NET in our new dotnet-test project through Conari engine:
    https://github.com/3F/Conari
    https://github.com/3F/regXwild