Releases: 3F/regXwild
1.4
💾 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()
andreplace()
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
1.3
💾 Public release. regXwild 1.3
x64 + x32 Unicode + MultiByte modules |
MultiByte | x64 | x86 |
Unicode | x64 | x86 |
Changelog:
-
NEW: Quantifiers are now standardized as follows:
https://github.com/3F/regXwild#-quantifiersregex regXwild n .* * 0+ .+ + 1+ .? ? 0; 1 .{1} # 1 .{2} ## 2 .{2, } ++ 2+ .{0, 2} ?? 0 - 2 .{2, 4} ++?? 2 - 4 (?:.{2}|.{4}) ##?? 2; 4 .{3, 4} +++? 3 - 4 (?:.{1}|.{3}) #?? 1; 3 -
NEW: Second-order Quantifiers. Added support for
++
regex equivalent.{n, }
-
NEW: Quantifiers. Implemented
++??
support for ranges. Part of PR #7.{n, m} where n > 0 and m > n n == + m == ?
++??
(2 - 4)+???
(1 - 4)+++?
(3 - 4)+?
(1 - 2)
etc. See unit-tests.
-
NEW: Quantifiers. Implemented
##??
support for ranges. Part of PR #7.{n, m} where n > 0 and m > n n == # m == ?
##??
(2 | 4)#???
(1 | 4)###?
(3 | 4)#?
(1 | 2)
etc. See unit-tests.
-
FIXED: Fixed rewind in MS-split
|
like for '##'|'####' -
FIXED: Fixed errors in second order quantifiers:
?? == .{0, 2}
and## == .{2}
For example:- False positive matching
[1####_of
forTV_[11_of_24]
- Crashed
number = '????';
fornumber = '123';
- and related.
- False positive matching
-
CHANGED: API versionString() marked as obsolete due to RXWVersion.
v1.2
Public release. regXwild 1.2 * NEW: MultiByte support. Now you can use modules with MultiByte characters. For C++ projects it will be automatically selected according to the actual project configuration. For .NET, you need to override related `CharacterSet` property. * NEW: .NET Core based projects support through Conari and related: Including .NET Standard targeting; Just install our modern NuGet packages; https://www.nuget.org/packages/regXwild * CHANGED: Modules with MultiByte characters for .NET projects by default. You can replace this by the changing $(CharacterSet) msbuild property: ``` <CharacterSet>Unicode</CharacterSet> ``` * CHANGED: Added the following tools to packages for related build processes. * tools\gnt.bat - https://github.com/3F/GetNuTool * tools\hMSBuild.bat - https://github.com/3F/hMSBuild * CHANGED: `algo` and `snet` testers can be found inside packages for each $(Platform)-$(CharacterSet) * CHANGED: Conari will no longer be distributed together with regXwild. https://github.com/3F/Conari Please consider to use it separately. Conari nuget packages: https://www.nuget.org/packages/Conari/ (recommended due to caching of 0x29 opcodes and other related optimization) * NOTE: Offcial releases can be also found through GitHub Releases: https://github.com/3F/regXwild/releases
v1.1
public release v1.1 CHANGED: Updated API: +REGXWILD_API bool searchEssC(const TCHAR* data, const TCHAR* filter, bool ignoreCase); +REGXWILD_API bool searchExtC(const TCHAR* data, const TCHAR* filter, bool ignoreCase); FIXED: Headers for C linkage and removed REGXWILD_EXPORTS from conf. NEW: Added Conari engine for work in .NET https://github.com/3F/Conari Use our NuGet package for Native C/C++ & .NET projects.