2012-04-19 6 views
7

Korzystanie Solr 3.5.0 i moim schema.xml Używam następujących czynności, aby zaznaczyć koniec zdania i zastąpić znaki interpunkcyjne końcowy z symbolicznym Token:Jak uniknąć znaku "<" w wyrażeniu regularnym w schemacie Solr schema.xml?

<charFilter class="solr.PatternReplaceCharFilterFactory" 
pattern="(?<=[^.!?\\s][^.!?]*(?:[.!?](?![']?\s|$)[^.!?]*)*)[.!?]+(?=\\s|$)" 
replacement=" monkeysentence"/> 

Nie jestem pewien, czy to wola pracuję nawet nad tym, co chcę, ale najpierw muszę rozwiązać problem ucieczki od znaku "<" w pierwszym "? < = 'lookbehind.

pojawia się następujący błąd:

org.xml.sax.SAXParseException: The value of attribute "pattern" 
associated with an element type "null" must not contain the '<' character. 

próbowałam używając '\', jak w:

pattern="(?\<=[^.!?\\s][^.!?]*(?:[.!?](?![']?\s|$)[^.!?]*)*)[.!?]+(?=\\s|$)" 

Ale pojawia się ten sam błąd.

Odpowiedz

20

Jak to jest w pliku XML, trzeba będzie użyć ucieczkę XML do kodowania <, mianowicie &lt; (można również trzeba kodować > jak &gt;, " jako &quot; i & jako &amp;)

+0

Że działa świetnie. Dzięki. – Ramsel

Powiązane problemy