REL version number follows the Semantic Versioning 2.0 Specification. In the current early stage of development, the API is still unstable and backward compatibility may break.
As an additional rule, in version 0.Y.Z
, a Z
-only version change is expected to be backward compatible with previous 0.Y.*
versions. But a Y
version change potentially breaks backward compatibility.
There is no representation in the DSL for specific character ranges nor raw strings.
The string primitives are not parsed (use esc(str)
to escape a string that should be matched literally). Hence:
+
, ?
or (
, even in RECst
. Use esc(str)
to escape the whole string.
\w
passed in a string (as opposed to used with Word
/μ
) will not be translated by the DotNETFlavor
.
The Group names are checked but not inlined silently if they fail the validation, or if they are duplicated when the flavor requires unicity.
\uXXXX
is not supported by PCRE, yet not translated by PCREFlavor
so far.
JavaScript regexes are quite limited and work a bit differently. In JavaScript flavor:
WordBoundary
/\b
is kept as-is, but will not have exactly the same semantic because of the lack of Unicode support in JavaScript regex flavor. For instance, in "fiancé"
, Javascript sees "\bfianc\bé"
where most other flavors see "\bfiancé\b"
. Same goes for NotWordBoundary
/\B
.
InputBegin
(^^
) and InputEnd
($$
) are translated to LineBegin
(^
) and LineEnd
($
), but this is only correct if the m
(multiline) flag is off.
Not all Unicode ligatures and variations are known to DiacriticCleaner
, for example:
U+1F100-U+1F1FF
(Unicode 6.1)
U+3300-U+33FF
(Unicode 6.0)
U+A720-U+A7FF
(Unicode 5.1 to 6.1)
Regex replacement in TrackString
do not support Java 7 embedded group names, which are not accessible in Scala’s Match
yet. It will use Scala group names instead (inconsistent with String#replaceAll
).
TrackString
cannot track intertwined/reordered replacements, i.e. you can only track abc
=> bca
as a single group (as opposed to three reordered groups). If out-of-order Repl
/Subst
are introduced, srcPos
will most probably yield incorrect results.
The following would be useful:
Core
[^...]
)
'symbols
for group names
Matchers
Utils