NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #17 most downloaded on crates.io
A regular expression parser.
Last release 3 months ago
09 Jun 2026
Release timing varies
gaps range from 3 weeks to 11 months
No release notes found
nothing matched a version
1 version withdrawn
withdrawn after publishing
11 years old
79 releases · first in 2015
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
BUG #446: Fixes a bug in the new Boyer-Moore searcher that results in a match failure. We fix this bug by temporarily disabling Boyer-Moore.
Bug fixes:
BUG #437: Fixes a bug in the new Boyer-Moore searcher that results in a panic.
Bug fixes:
FEATURE #348: Improve performance for capture searches on anchored regex. (Contributed by @ethanpailes. Nice work!)
New features:
Bug fixes:
FEATURE #374: Add impl From for &str.
New features:
impl From<Match> for &str.Clone and PartialEq on Error.Bug fixes:
FEATURE #341: Support nested character classes and intersection operation. For example, [\p{Greek}&&\pL] matches greek letters and [[0-9]&&[^4]] match
New features:
[\p{Greek}&&\pL] matches greek letters and
[[0-9]&&[^4]] matches every decimal digit except 4.
(Much thanks to @robinst, who contributed this awesome feature.)Bug fixes:
(?x) flag.Captures::get to API documentation.(?x) is used.rure_captures_len in the C binding.BUG #316: Note a missing breaking change from the 0.2.0 CHANGELOG entry. (RegexBuilder::compile was renamed to RegexBuilder::build.)
One major bug with replace_all has been fixed along with a couple of other
touch-ups.
NoExpand to reference correct lifetime parameter.replace_all when replacing a match with the empty string.0.2.0 CHANGELOG entry.
(RegexBuilder::compile was renamed to RegexBuilder::build.)regex should only require one version of memchr crate.There are a number of breaking changes in 0.2. They are split into two types. The first type correspond to breaking changes in regular expression synt…
This is a new major release of the regex crate, and is an implementation of the
regex 1.0 RFC.
We are releasing a 0.2 first, and if there are no major problems, we will
release a 1.0 shortly. For 0.2, the minimum supported Rust version is
1.12.
There are a number of breaking changes in 0.2. They are split into two
types. The first type correspond to breaking changes in regular expression
syntax. The second type correspond to breaking changes in the API.
Breaking changes for regex syntax:
[:upper:] would parse as the upper POSIX character class. Now it parses
as the character class containing the characters :upper:. The fix to this
change is to use [[:upper:]] instead. Note that variants like
[[:upper:][:blank:]] continue to work.[ must always be escaped inside a character class.&, - and ~ must be escaped if any one of them are
repeated consecutively. For example, [&], [\&], [\&\&], [&-&] are all
equivalent while [&&] is illegal. (The motivation for this and the prior
change is to provide a backwards compatible path for adding character class
set notation.)bytes::Regex now has Unicode mode enabled by default (like the main
Regex type). This means regexes compiled with bytes::Regex::new that
don't have the Unicode flag set should add (?-u) to recover the original
behavior.Breaking changes for the regex API:
find and find_iter now return Match values instead of
(usize, usize). Match values have start and end methods, which
return the match offsets. Match values also have an as_str method,
which returns the text of the match itself.Captures type now only provides a single iterator over all capturing
matches, which should replace uses of iter and iter_pos. Uses of
iter_named should use the capture_names method on Regex.at method on the Captures type has been renamed to get, and it
now returns a Match. Similarly, the name method on Captures now returns
a Match.replace methods now return Cow values. The Cow::Borrowed variant
is returned when no replacements are made.Replacer trait has been completely overhauled. This should only
impact clients that implement this trait explicitly. Standard uses of
the replace methods should continue to work unchanged. If you implement
the Replacer trait, please consult the new documentation.quote free function has been renamed to escape.Regex::with_size_limit method has been removed. It is replaced by
RegexBuilder::size_limit.RegexBuilder type has switched from owned self method receivers to
&mut self method receivers. Most uses will continue to work unchanged, but
some code may require naming an intermediate variable to hold the builder.compile method on RegexBuilder has been renamed to build.is_match function has been removed. It is replaced by compiling
a Regex and calling its is_match method.PartialEq and Eq impls on Regex have been dropped. If you relied
on these impls, the fix is to define a wrapper type around Regex, impl
Deref on it and provide the necessary impls.is_empty method on Captures has been removed. This always returns
false, so its use is superfluous.Syntax variant of the Error type now contains a string instead of
a regex_syntax::Error. If you were examining syntax errors more closely,
you'll need to explicitly use the regex_syntax crate to re-parse the regex.InvalidSet variant of the Error type has been removed since it is
no longer used.RegexSplits has been renamed to Split.A number of bugs have been fixed:
Replacer trait has been changed to permit the caller to control
allocation.is_match function.0.1) and remove with_size_limit.Captures now have the correct lifetime parameters.PartialEq and Eq impls on Regex.is_empty from Captures since it always returns false.Captures.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →