ICU 76.1 76.1

Public Member Functions
icu::UnicodeMatcher Class Referenceabstract

`UnicodeMatcher` defines a protocol for objects that can match a range of characters in a Replaceable string. More...

`#include <unimatch.h>`

Inheritance diagram for icu::UnicodeMatcher:

## Public Member Functions
virtual | ~UnicodeMatcher ()
| Destructor. More...
virtual UMatchDegree | matches (const Replaceable &text, int32_t &offset, int32_t limit, UBool incremental)=0
| Return a UMatchDegree value indicating the degree of match for the given text at the given offset. More...
virtual UnicodeString & | toPattern (UnicodeString &result, UBool escapeUnprintable=false) const =0
| Returns a string representation of this matcher. More...
virtual UBool | matchesIndexValue (uint8_t v) const =0
| Returns true if this matcher will match a character c, where c & 0xFF == v, at offset, in the forward direction (with limit > offset). More...
virtual void | addMatchSetTo (UnicodeSet &toUnionTo) const =0
| Union the set of all characters that may be matched by this object into the given set. More...

## Detailed Description

`UnicodeMatcher` defines a protocol for objects that can match a range of characters in a Replaceable string.

Stable:
  ICU 2.4

Definition at line 71 of file unimatch.h.

## Constructor & Destructor Documentation

## ◆ ~UnicodeMatcher()

virtual icu::UnicodeMatcher::~UnicodeMatcher | ( |  | ) |
| virtual

Destructor.

Stable:
  ICU 2.4

## Member Function Documentation

## ◆ addMatchSetTo()

virtual void icu::UnicodeMatcher::addMatchSetTo | ( | UnicodeSet & | toUnionTo | ) | const
| pure virtual

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

Parameters

  toUnionTo | the set into which to union the source characters

Stable:
  ICU 2.4

Implemented in icu::UnicodeSet.

## ◆ matches()

virtual UMatchDegree icu::UnicodeMatcher::matches | ( | const Replaceable & | text,
|  | int32_t & | offset,
|  | int32_t | limit,
|  | UBool | incremental
| ) |  |
| pure virtual

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).

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.

Note: This method is not const because some classes may modify their state as the result of a match.

Parameters

  text | the text to be matched
  offset | 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 | 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 | 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
  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.

Stable:
  ICU 2.4

Implemented in icu::UnicodeSet, and icu::UnicodeFilter.

## ◆ matchesIndexValue()

virtual UBool icu::UnicodeMatcher::matchesIndexValue | ( | uint8_t | v | ) | const
| pure virtual

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.

Stable:
  ICU 2.4

## ◆ toPattern()

virtual UnicodeString& icu::UnicodeMatcher::toPattern | ( | UnicodeString & | result,
|  | UBool | escapeUnprintable = `false`
| ) |  | const
| pure virtual

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

  result | the string to receive the pattern. Previous contents will be deleted.
  escapeUnprintable | 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.

Stable:
  ICU 2.4

Implemented in icu::UnicodeSet.

The documentation for this class was generated from the following file:

- common/unicode/unimatch.h