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 propertiesL,Lu,Ll,N/Nd,IsAlphabetic,IsLetter,IsDigit,IsUppercase,IsLowercase,IsWhite_Space. - Unicode scripts (
\p{IsGreek},\p{script=Latn}), blocks (\p{InGreek},\p{block=Arrows}) and general categories (\p{Sc},\p{IsPd},\p{gc=Mn}), from the Unicode 15.0 tables ofUnicodeTables. - The binary properties
IsDigit,IsPunctuation,IsTitlecase,IsControl,IsAssigned,IsHex_Digit,IsJoin_Control,IsNoncharacter_Code_Point,IsWord,IsAlnum,IsBlank,IsGraphandIsPrint, in any case. \p{all}, any code point.UNICODE_CHARACTER_CLASS((?U)):\d \w \s \band the POSIX classes take their Unicode definitions, as on the JDK.- 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.
- Other binary properties (
\p{IsEmoji},\p{IsIdeographic}, …). \X,\N{name},\b{g}.CANON_EQ.
Differences
Text is matched one code point at a time, as on the JDK: . and a
character class take a whole surrogate pair. The Unicode properties and
categories answer from the tables, for all of Unicode; javaLetter and
its kin answer this class’s own letter test, the scripts a device font is
likely to have. 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()