Client API. The Codename One framework your app is built on: this runs on the device, not in a backend.
public final class Pattern
- Object
- Pattern
java.util.regex.Pattern for the Codename One runtime: a backtracking
matcher written for this module, with the JDK’s syntax and the JDK’s
answers for the constructs it has.
Supported
- Literals,
., and every escape for a character:\t \n \r \f \a \e,\0nn,\xhh,\x{h...}, backslash-u with four hex digits,\cX, and\Q...\E. - Character classes with ranges, negation, nested unions and
&&intersections;\d \D \w \W \s \S \h \H \v \V;\R. - The POSIX classes (
\p{Alpha},\p{Punct}, …), thejava...classes, and the Unicode properties a device can answer:L,Lu,Ll,N/Nd,IsAlphabetic,IsLetter,IsDigit,IsUppercase,IsLowercase,IsWhite_Space. - Greedy, reluctant and possessive quantifiers.
- Capturing, non-capturing and named groups, back references by number and by name, alternation, atomic groups.
- Lookahead and bounded lookbehind, positive and negative.
^ $ \A \z \Z \G \b \B.CASE_INSENSITIVE,MULTILINE,DOTALL,COMMENTS,LITERAL,UNIX_LINESandUNICODE_CASE, as arguments and inline ((?i),(?i:...),(?-i)).
Refused
These throw PatternSyntaxException (the flags an
UnsupportedOperationException) naming the construct, when the pattern
is compiled. Nothing is accepted and then matched differently.
- Unicode scripts, blocks and general categories other than the ones
above (
\p{IsGreek},\p{InArrows},\p{Sc}, …). \X,\N{name},\b{g}.CANON_EQandUNICODE_CHARACTER_CLASS((?U)).- A code point above U+FFFF inside a character class.
Differences
Text is matched one UTF-16 char at a time: . and a character class
take half of a surrogate pair. Which characters are letters is what
isLetter in this class answers, the scripts a device font is likely
to have rather than all of Unicode. A group repeated many thousand times
over a long text recurses once for each repetition, as the JDK’s does,
on a stack that is smaller on a device.
Fields
Methods
Inherited methods
Field details
UNIX_LINES
public static final int UNIX_LINES = 1CASE_INSENSITIVE
public static final int CASE_INSENSITIVE = 2COMMENTS
public static final int COMMENTS = 4MULTILINE
public static final int MULTILINE = 8LITERAL
public static final int LITERAL = 16DOTALL
public static final int DOTALL = 32UNICODE_CASE
public static final int UNICODE_CASE = 64CANON_EQ
public static final int CANON_EQ = 128UNICODE_CHARACTER_CLASS
public static final int UNICODE_CHARACTER_CLASS = 256Method details
compile
public static Pattern compile(String regex)compile
public static Pattern compile(String regex, int flags)pattern
public String pattern()toString
public String toString()flags
public int flags()matcher
public Matcher matcher(CharSequence input)matches
public static boolean matches(String regex, CharSequence input)split
public String[] split(CharSequence input)split
public String[] split(CharSequence input, int limit)input around the matches of this pattern, by the JDK’s
rules for limit.splitAsStream
public Stream<String> splitAsStream(CharSequence input)split(CharSequence) would answer, found one at a time
as the stream asks for them, as the JDK’s are: the search starts on
the first request, so a limit stops it and a change to a mutable
input before then is seen.quote
public static String quote(String s)s and nothing else.asPredicate
public Predicate<String> asPredicate()asMatchPredicate
public Predicate<String> asMatchPredicate()