TRegExpr
TRegExpr copied to clipboard
Regular expressions (regex), pascal.
something like benchmark-action/github-action-benchmark
Now we test with `build` and `stable` Lazarus versions. May be we want to add some old (2.x?) versions to keep compatibility
``` IsMatching('Recursive', '^(?''A''(?:b[^b]+(?&A)?x+))', 'baaabaaaaaxx', [1,12, 1,12]); ``` https://regex101.com/r/g3pDSW/1 ``` ^(?'A' (?: b[^b]+ (?&A)? ## This sub-call will match ALL the "x", but when the outer match fails, it backtracks, and...
I have not further analysed this... `FindRepeated` (for unicode) calls `IncUnicode2` which may (for surrogates) increment by 2. For the OPs that can match a surrogate this will be a...
``` IsNotMatching('no loop linebreak', 'a\R\Rb', 'a'#13#10'b'); IsNotMatching(' loop linebreak', 'a\R+\Rb', 'a'#13#10'b'); ``` - The first test works, \R eats the entire `#13#10`. The 2nd #R does not match. - Yet...
Martin, can you adjust tests project to not fail with UnicodeRE off? You are really good in composing tests. I admit. @user4martin
I got comment >It is also not fully correct. E.g. K (U+212a) should match K or k case insensitively So our approach has weak place. We match case insensitive using...
The FPC framework doesn't return the failure code (if error then exit code != 0) which always shows that the tests passed on Travis-CI. Maybe use dunit/dunit2 for FPC instead?
Getting the next opcode is sometimes done with `PRENextOff(AlignToPtr(scan + REOpSz))^ ` and sometimes `Inc(s, REOpSz + RENextOffSz)` It doesn't fail on many arch: ``` function AlignToPtr(const p: Pointer): Pointer;...