pub struct JavaPattern(/* private fields */);Expand description
A java.util.regex.Pattern compiled for matches() and
replaceAll/replaceFirst.
Implementations§
Source§impl JavaPattern
impl JavaPattern
Sourcepub fn compile(pattern: &str) -> Result<Self, PatternError>
pub fn compile(pattern: &str) -> Result<Self, PatternError>
Compiles pattern, Pattern.compile(pattern).
§Errors
PatternError for a pattern Java refuses, and for one this crate
cannot read as Java does, which it refuses rather than match it
another way.
Sourcepub fn group_count(&self) -> usize
pub fn group_count(&self) -> usize
The number of capturing groups, Matcher.groupCount().
Sourcepub fn matches(&self, input: &str) -> Result<bool, MatchError>
pub fn matches(&self, input: &str) -> Result<bool, MatchError>
Matcher.matches().
§Errors
A search that runs past the engine’s backtrack limit is an error and
not a no match. Java answers such a pattern, however slowly, so
reading the limit as “does not match” would let a rule that Java
applies fall through to the next rule, or to DEFAULT, and map the
principal to a name the operator never meant for it. A caller rejects
the name instead.
An input longer than the pattern’s input limit is an error too: see
the crate’s # Limits.
Sourcepub fn replace(
&self,
input: &str,
replacement: &str,
all: bool,
) -> Result<String, MatchError>
pub fn replace( &self, input: &str, replacement: &str, all: bool, ) -> Result<String, MatchError>
input.replaceAll(pattern, replacement) when all, and
input.replaceFirst(pattern, replacement) when not.
The matches are Matcher.find’s, not the regex crate’s iterator’s.
After a match that is not empty, find may match the empty string at
the very position the match ended, and the crate’s iterator does not:
"alice".replaceAll("(.*)", "$1x") is alicexx in Java. After an empty
match find starts one character on, and \G stays where that match
ended.
§Errors
MatchError for a replacement Java refuses, for a search past the
backtrack limit, and for an input longer than the pattern’s input
limit.