Skip to content

Releases: tommyettinger/RegExodus

0.1.15 "Web Mender"

03 Feb 03:12
Compare
Choose a tag to compare

This release is a tiny emergency fix for 0.1.14, and is almost entirely the same as that release. The main difference is that this compiles on GWT, and 0.1.14 doesn't. This has the same breaking change as 0.1.14: the .gwt.xml inherits line is now <inherits name='regexodus.regexodus' /> . That should be all you need to know to update from 0.1.13, and if you used 0.1.14 you should definitely update the version.

0.1.14 "The Web We Weave"

14 Jan 00:15
Compare
Choose a tag to compare

This release includes some small fixes for Matcher and Category (affecting Unicode blocks, mainly), but also changes the GWT inherits line because I found out that the old one could cause problems. The inherits is now:

<inherits name='regexodus.regexodus' />

There are very few other changes here.

0.1.13 "Loop, de-loop"

02 Oct 02:01
Compare
Choose a tag to compare

This release fixes a rarely-seen infinite loop bug in Pattern.equals() and Term.equals(). It also improves the behavior of Pattern.equals() regarding flags, and makes the \\G escape at the start of text match Java's behavior for compatibility. It's relatively unlikely that this release is important for many people to update right now, but it should help if you're writing unit tests and compare Patterns. (I'm assuming you don't want an infinite loop in your unit test.)

0.1.12 with small fixes

15 Mar 02:39
Compare
Choose a tag to compare

This is a minor patch release to improve the behavior of Category's case mapping/folding methods, which in the last release had some strange bugs. There's also some added docs to PerlSubstitution, which is where I put the information on special modes for replacing groups. The other changes here should be purely internal, but may help if debugging.

0.1.11 with fixes, updates, and Unicode 13.0.0 support

09 Jan 06:12
Compare
Choose a tag to compare

There's various changes here; the three breaking changes are that CharCharMap has been replaced with a simpler implementation, CharArrayList has been removed (this means we don't have any code from FastUtil any more), and Matcher.setTarget(CharSequence, int, int) actually behaves correctly now and doesn't need workarounds. The last one may need explaining; there was a mistake in the earlier setTarget() method where the wrong variable was checked in a for loop's termination condition, so the start and length didn't act like they should. Unicode data for categories has been updated to 13.0.0, despite the apparent attempt by the Node.js tools (used to generate some of the data) to drive me irreparably insane. I'm so glad I can stick to Java now. There's some extra case conversion options in replacements, so now you can upper-case or lower-case captured groups. That's about it! It's been almost 2 and a half years since the last one, so I hope this release is good!

Compatibility/bugfix/update release 0.1.10

19 Jun 01:18
Compare
Choose a tag to compare

This release improves GWT compatibility to allow RegExodus to work with GWT 2.8.2, fixes some bugs in the Javadocs and a more serious bug in Unicode block handling (block matching like \p{InBasicLatin} wouldn't have worked before, but does now along with other blocks), and updates Unicode Standard support to 11.0.0 from the older 8.0.0 support.

Version 0.1.9 with GWT enhancements

16 Feb 00:22
Compare
Choose a tag to compare

This is a bugfix release that replaces 0.1.8, which had serious problems on GWT. There aren't many new features in this release if you don't care about targeting GWT, other than some small fixes/improvements to whitespace handling and the added G category that includes all whitespace (like the fusion of Zh and Zv, which are also available as Gh and Gv now). If you do use GWT, this release provides a super-source replacement of most of java.util.regex with fairly close behavior, at least closer than the default regex behavior in GWT where available. This needs to be tested more carefully, particularly when other libraries also super-source replacements to the same package, but the best way to do that for now is with a new release. This does remove what was the regexodus.regex package from compilation on non-GWT targets, but it replaces java.util.regex on GWT. It may be reintroduced in its own package for other platforms, though there are generally more features available if you directly use the regexodus package instead of a transitional layer. If you encounter issues with 0.1.9, you can downgrade to 0.1.7 without breaking anything, probably (0.1.7 is only on Maven Central, not released on GitHub).

0.1.5 with new features

30 May 04:36
Compare
Choose a tag to compare

This release adds extra features (not present in Java's regexes) to backreferences, both in search and replacement strings. This includes the ability to match a reversed version of a captured group, match a captured group with case-insensitivity for that match only, or match a captured group with opening brackets mirrored to their closing counterparts and vice versa (applying to almost all kinds of brackets Unicode knows about in the Ps and Pe categories).

Importantly, there is extensive documentation regarding the specific dialect RegExodus supports in the class JavaDocs for Pattern. I hope this documentation can be useful, since many regex flavors don't document their specifically supported features much (or at all).

Bugfix release 0.1.4

12 May 06:16
Compare
Choose a tag to compare

This release fixes a highly frustrating and confusing bug that I do not want anyone else to have to debug. Certain Unicode characters, for various reasons but depending primarily on quirks of their codepoint and their neighboring characters in Unicode, did not count as word chars for \w and \W or boundary parts for \b and \B. These characters appeared to match correctly in other cases, making the bug particularly confusing. The fix should not have an appreciable impact on performance but should absolutely improve correctness. This release is also already uploaded to Maven Central, but the .jar parts of the release are here too.

Bugfix Release 0.1.3

06 May 09:26
Compare
Choose a tag to compare

This is a small but significant bugfix release that corrects the behavior of case-insensitive mode but does not change any APIs. It is recommended to upgrade if you used version 0.1.2, since the case-insensitive matching would almost never work as intended in that release (and probably most or all earlier releases too).