Top Description Fields Methods
com.ibm.icu.text

public Interface UnicodeMatcher

Known Direct Implementers
com.ibm.icu.text.StringMatcher, com.ibm.icu.text.Quantifier, com.ibm.icu.text.UnicodeFilter

UnicodeMatcher defines a protocol for objects that can match a range of characters in a Replaceable string.
ICU Status
Stable since ICU 2.0.

Field Summary

Modifier and TypeField and Description
public static final char
ETHER

The character at index i, where i < contextStart || i >= contextLimit, is ETHER.

public static final int
U_MATCH

Constant returned by matches() indicating a complete match between the text and this matcher.

public static final int
U_MISMATCH

Constant returned by matches() indicating a mismatch between the text and this matcher.

public static final int
U_PARTIAL_MATCH

Constant returned by matches() indicating a partial match between the text and this matcher.

Method Summary

Modifier and TypeMethod and Description
public void
addMatchSetTo(UnicodeSet
the set into which to union the source characters
toUnionTo
)

Union the set of all characters that may be matched by this object into the given set.

public int

Returns:

a match degree value indicating a full match, a partial match, or a mismatch. If incremental is false then U_PARTIAL_MATCH should never be returned.
matches
(Replaceable
the text to be matched
text
,
int[]
on input, the index into text at which to begin matching. On output, the limit of the matched text. The number of matched characters is the output value of offset minus the input value. Offset should always point to the HIGH SURROGATE (leading code unit) of a pair of surrogates, both on entry and upon return.
offset
,
int
the limit index of text to be matched. Greater than offset for a forward direction match, less than offset for a backward direction match. The last character to be considered for matching will be text.charAt(limit-1) in the forward direction or text.charAt(limit+1) in the backward direction.
limit
,
boolean
if true, then assume further characters may be inserted at limit and check for partial matching. Otherwise assume the text as given is complete.
incremental
)

Return a UMatchDegree value indicating the degree of match for the given text at the given offset.

public boolean
matchesIndexValue(int v)

Returns true if this matcher will match a character c, where c & 0xFF == v, at offset, in the forward direction (with limit > offset).

public String
toPattern(boolean
if true then convert unprintable character to their hex escape representations, \\uxxxx or \\Uxxxxxxxx. Unprintable characters are those other than U+000A, U+0020..U+007E.
escapeUnprintable
)

Returns a string representation of this matcher.

Field Detail

ETHERback to summary
public static final char ETHER

The character at index i, where i < contextStart || i >= contextLimit, is ETHER. This allows explicit matching by rules and UnicodeSets of text outside the context. In traditional terms, this allows anchoring at the start and/or end.

ICU Status
Stable since ICU 2.0.
U_MATCHback to summary
public static final int U_MATCH

Constant returned by matches() indicating a complete match between the text and this matcher. For an incremental variable-length match, this value is returned if the given text matches, and it is known that additional characters would not alter the extent of the match.

ICU Status
Stable since ICU 2.0.
U_MISMATCHback to summary
public static final int U_MISMATCH

Constant returned by matches() indicating a mismatch between the text and this matcher. The text contains a character which does not match, or the text does not contain all desired characters for a non-incremental match.

ICU Status
Stable since ICU 2.0.
U_PARTIAL_MATCHback to summary
public static final int U_PARTIAL_MATCH

Constant returned by matches() indicating a partial match between the text and this matcher. This value is only returned for incremental match operations. All characters of the text match, but more characters are required for a complete match. Alternatively, for variable-length matchers, all characters of the text match, and if more characters were supplied at limit, they might also match.

ICU Status
Stable since ICU 2.0.

Method Detail

addMatchSetToback to summary
public void addMatchSetTo(UnicodeSet toUnionTo)

Union the set of all characters that may be matched by this object into the given set.

Parameters
toUnionTo:UnicodeSet

the set into which to union the source characters

ICU Status
Stable since ICU 2.2.
matchesback to summary
public int matches(Replaceable text, int[] offset, int limit, boolean incremental)

Return a UMatchDegree value indicating the degree of match for the given text at the given offset. Zero, one, or more characters may be matched. Matching in the forward direction is indicated by limit > offset. Characters from offset forwards to limit-1 will be considered for matching. Matching in the reverse direction is indicated by limit < offset. Characters from offset backwards to limit+1 will be considered for matching. If limit == offset then the only match possible is a zero character match (which subclasses may implement if desired). If U_MATCH is returned, then as a side effect, advance the offset parameter to the limit of the matched substring. In the forward direction, this will be the index of the last matched character plus one. In the reverse direction, this will be the index of the last matched character minus one.

Parameters
text:Replaceable

the text to be matched

offset:int[]

on input, the index into text at which to begin matching. On output, the limit of the matched text. The number of matched characters is the output value of offset minus the input value. Offset should always point to the HIGH SURROGATE (leading code unit) of a pair of surrogates, both on entry and upon return.

limit:int

the limit index of text to be matched. Greater than offset for a forward direction match, less than offset for a backward direction match. The last character to be considered for matching will be text.charAt(limit-1) in the forward direction or text.charAt(limit+1) in the backward direction.

incremental:boolean

if true, then assume further characters may be inserted at limit and check for partial matching. Otherwise assume the text as given is complete.

Returns:int

a match degree value indicating a full match, a partial match, or a mismatch. If incremental is false then U_PARTIAL_MATCH should never be returned.

ICU Status
Stable since ICU 2.0.
matchesIndexValueback to summary
public boolean matchesIndexValue(int v)

Returns true if this matcher will match a character c, where c & 0xFF == v, at offset, in the forward direction (with limit > offset). This is used by RuleBasedTransliterator for indexing.

Note

This API uses an int even though the value will be restricted to 8 bits in order to avoid complications with signedness (bytes convert to ints in the range -128..127).

ICU Status
Stable since ICU 2.0.
toPatternback to summary
public String toPattern(boolean escapeUnprintable)

Returns a string representation of this matcher. If the result of calling this function is passed to the appropriate parser, it will produce another matcher that is equal to this one.

Parameters
escapeUnprintable:boolean

if true then convert unprintable character to their hex escape representations, \\uxxxx or \\Uxxxxxxxx. Unprintable characters are those other than U+000A, U+0020..U+007E.

ICU Status
Stable since ICU 2.0.