- Drop support for Nim < 1.6
- Implement PCRE var flags (#137)
- Performance improvements
- Disable utf8 regex check for arbitrary bytes (#136)
- Fix dot to match anything in ascii mode (#135)
- Match arbitrary bytes (#134)
- Verify input is utf-8 (#131)
- Literals substring optimization (#130)
- Refactor epsilon transitions (#129)
- Deprecated all of the APIs (except the macro one)
- New API (issue #111)
- Removed the "capture all group/submatch repetitions" feature. Only the last group repetition is captured.
Changes to migrate to the new API:
re"regex" -> re2"regex"
Regex -> Regex2
RegexMatch -> RegexMatch2
Then deal with group(RegexMatch2, int)
and similar APIs returning
the last capture group/submatch repetition instead of a sequence
with all of them.
- Nim compat fixes: #119
- Nim compat fixes: #117
- Add
reRepRangeLimit
compile option to define range limit #113 - Nim compat fixes: #98, #101, #110
- Adds support for unbounded lookaround assertions
- Fix: parsing
{n,m}
repetitions is less strict;{}
,{abc}
, etc are parsed as characters. This is closer to PCRE, but it won't allow error prone instances such as missing brackets:{123
. - Fix: double repetitions:
**
,++
,*+
,???
,{n}*
,{n}+
, and other combinations are no longer allowed. The++
PCRE hack is not allowed, as it won't work the same way anyway.
- Adds
escapeRe(string): string
function - Removed
unicodeplus
dependency
- Fix: regression related to repetitions, and lonely assertions; issue #83
- Fix: make it compile with ARC; thanks to @timotheecour
- Removes macro usage for regular function APIs
- Adds
match
block macro - Fix: sub-matches with nested optional operators
(ex:
(a?)*
) to work the same as PCRE
- Adds
findAllBounds
- Adds some minor perf improvements
- Adds
groupFirstCapture
,groupLastCapture
, andgroup(1): seq[string]
for group numbers - Adds support for negative lookaround assertions
- Adds literals optimization to
findAll
,split
,splitIncl
, andreplace
; this makes some regexes run ~100x faster. - Support lookbehind; this is limited to one character
- Fix:
findAll
ran in quadratic time for some regexes;split
,splitIncl
, andreplace
were also affected; Linear time is now guaranteed. - Fix: regex compilation errors were swallow due to a Nim bug; A workaround to raise the error was implemented
- Fix multiline not working with beginning of line, issue #13
- Fix replace re"", issue #29
- Fixes a number of issues related to empty matches
in the
findAll
,split
, andreplace
APIs
- Fix non-greedy find, issue #61 (v0.14.0 regression)
- Drop Nim 0.19.0 support (0.19.6 is supported)
- Changed all
proc
tofunc
- Faster macro for static regex
- Deprecated
toPattern
- New
match
API that does not require theMatchRegex
parameter
- Fix nested non-capturing group repetition #46
- Remove stylecheck config #55
- Add
groupFirstCapture
,groupLastCapture
, andgroup(1): seq[string]
(thanks to @xmonader) - Add Nim 1.0.0 to CI
- Drop Nim 0.18 support
- Fix nested captures with repetition range; issue #46
- Fix Nim
sets
warnings
- Support matching at compile-time; issue #4 (thanks to @timotheecour)
- Added
isInitialized*(re: Regex)
- Fix
\w
not matching_
on ASCII mode - Fixes to support the JS backend
- Update to Unicode 12.1
- Fix for Nim devel (PR #34)
- Add Nim 0.18 support back
- Drop Nim 0.18 support
- Improved
re
API to support compile-time or run-time compilation depending on input (thanks to @timotheecour)
- Drop Nim 0.17 support
- Add Nim 0.19 support
- Update dependencies
- Remove deprecated
match
andfind
returningOption[RegexMatch]
- Add
splitIncl
, similar tosplit
but includes captured groups
- Fix deprecation warnings on devel
- Fixes for devel (#17)
- Update dependencies
- New API taking
var RegexMatch
instead of returningOption[RegexMatch]
- Deprecate
match
andfind
returningOption[RegexMatch]
- Update to unicode 11
- Pretty error messages
- Adds limited lookahead support
- Improves compilation time
- Initial release