2010-11-20 17 views
0

Gute Nacht,Unicode in Regex und DB Lesen/Schreiben

ich zur Zeit auf einem sehr einfachen lexikalischen analiser in C# für die menschliche Sprache arbeite basierend auf Regex Matching, und ich bin derzeit das Problem der specifing eine Regex gegenüber, kann jedes mögliche Interpunktionssymbol in der Zielsprache und ein anderes, das auch jede Art von Leerzeichen abgleichen kann, abgleichen. Nach der Suche hier in Stack Overflow und einer anderen Website habe ich festgestellt, dass ich Regexs \p{P} für Interpunktion und \p{Z} für Leerzeichen verwenden kann, und es funktioniert beim Lesen aus einer Textdatei. Die Frage ist, dass es im letzten Programm erforderlich sein wird, Datensätze aus einer SQL-Datenbank zu lesen und sie mit diesem lexikalischen Analysator zu verarbeiten, und ich weiß nicht, wie die Datensätze in der DB codiert sind. Kann das in dieser Situation ein Problem sein? Können die erwähnten Regexes mit jedem Interpunktions- und Whitespace-Zeichen einer Eingabe übereinstimmen, unabhängig von ihrer Codierung?

Vielen Dank.

+0

Welche db verwenden Sie? – Amirshk

+0

SQL Server 2008. – Miguel

Antwort

2

Das .NET Framework konvertiert Zeichenfolgen aus der Datenbank in Unicode. Ob sie korrekt konvertiert werden, hängt davon ab, ob etwas gesagt hat, um welche Codierung es sich bei der Datenbank handelt. Aber die Zeichenfolgen, die Ihre Regex sieht, werden in Unicode sein.

Angenommen, dass die Datenbankzugriffsebene den Text korrekt aus dem Datenbankeintrag konvertiert hat, müssen Sie sich keine Gedanken über die Codierung machen, da sie immer Unicode ist.

+0

Vielen Dank Mischel. – Miguel