Package org.apache.lucene.analysis.pattern

# Class PatternReplaceCharFilter

java.lang.Object
java.io.Reader
org.apache.lucene.analysis.CharFilter
org.apache.lucene.analysis.charfilter.BaseCharFilter
org.apache.lucene.analysis.pattern.PatternReplaceCharFilter

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`, `Readable`

public class PatternReplaceCharFilter extends BaseCharFilter
CharFilter that uses a regular expression for the target of replace string. The pattern match will be done in each "block" in char stream.

ex1) source="aa bb aa bb", pattern="(aa)\\s+(bb)" replacement="$1#$2"
output="aa#bb aa#bb" NOTE: If you produce a phrase that has different length to source string and the field is used for highlighting for a term of the phrase, you will face a trouble.

ex2) source="aa123bb", pattern="(aa)\\d+(bb)" replacement="$1 $2"
output="aa bb"
and you want to search bb and highlight it, you will get
highlight snippet="aa1<em>23bb</em>"

Since:
  Solr 1.5

## Field Summary

### Fields inherited from class org.apache.lucene.analysis.CharFilter

`input`

### Fields inherited from class java.io.Reader

`lock`

## Constructor Summary

Constructors
Constructor
Description
`PatternReplaceCharFilter(Pattern pattern, String replacement, Reader in)`

## Method Summary

Modifier and Type
Method
Description
`protected int`
`correct(int currentOff)`
Retrieve the corrected offset.
`int`
`read()`
`int`
`read(char[] cbuf, int off, int len)`

### Methods inherited from class org.apache.lucene.analysis.charfilter.BaseCharFilter

`addOffCorrectMap, getLastCumulativeDiff`

### Methods inherited from class org.apache.lucene.analysis.CharFilter

`close, correctOffset`

### Methods inherited from class java.io.Reader

`mark, markSupported, nullReader, read, read, ready, reset, skip, transferTo`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### PatternReplaceCharFilter

public PatternReplaceCharFilter(Pattern pattern, String replacement, Reader in)

## Method Details

### read

public int read(char[] cbuf, int off, int len) throws IOException

Specified by:
  `read` in class `Reader`
Throws:
  `IOException`

### read

public int read() throws IOException

Overrides:
  `read` in class `Reader`
Throws:
  `IOException`

### correct

protected int correct(int currentOff)
Description copied from class: `BaseCharFilter`
Retrieve the corrected offset.

Overrides:
  `correct` in class `BaseCharFilter`