Gibt es eine Möglichkeit, alle nicht alphabetischen Unicode-Zeichen zu finden?

7

Ich habe einige Dokumente, die OCR-Konvertierung von PDF in HTML durchgeführt haben. Aus diesem Grund haben sie viele zufällige Unicode Interpunktion, wo der Konverter vermasselt (d. H. Elipses, etc ...). Sie haben auch eine Reihe von Nicht-Englisch, aber immer noch Buchstaben, wie é, und russische Zeichen, etc ...

Gibt es eine Möglichkeit, eine Regex zu erstellen, die mit einem Unicode-Buchstaben (aus Alphabeten einer beliebigen Sprache) übereinstimmt? Oder eine, die nur nicht-alphabetische Zeichen zusammenbringt? Entweder wäre man wirklich hilfreich und genial. Ich benutze Perl, wenn sich das ändert. Danke!

    
Eli 14.05.2011, 23:32
quelle

2 Antworten

19

Überprüfen Sie die Unicode-Zeicheneigenschaften: Ссылка . Ich denke, was du suchst, ist wahrscheinlich

%Vor%

, die mit allen Buchstaben oder Ideogrammen übereinstimmen. Sie können auch Buchstaben mit Markierungen darauf einfügen, damit Sie

verwenden können %Vor%

In jedem Fall sind alle verschiedenen Typen von Zeicheneigenschaften in der ersten Verknüpfung aufgeführt.

Bearbeiten: Vielleicht möchten Sie auch diese Stack-Overflow-Antwort betrachten, in der besprochen wird, ob \ w mit Unicode-Zeichen übereinstimmt. Sie schlagen vor, dass Sie auch \ p {Word} oder \ p {Alnum} verwenden könnten: Stimmt \ w mit allen im Unicode-Standard definierten alphanumerischen Zeichen überein?

    
mpdaugherty 14.05.2011, 23:42
quelle
2

Je nachdem, welche Sprache Sie verwenden, ist die Engine für reguläre Ausdrücke möglicherweise Unicode-fähig. Ist dies der Fall, kann es die \p{} -Eigenschaftstoken kennen oder auch nicht. Wenn dies der Fall ist, finden Sie Ihre Antwort in Unicode-Zeichen und -Eigenschaften in Jan Goyvaerts 'Regex-Tutorial .

Sie können \p{Latin} , falls unterstützt, verwenden, um alles zu erkennen, was aus einer Sprache ist, die einen der Unicode Latin Blöcke verwendet (oder nicht).

    
Mike 'Pomax' Kamermans 14.05.2011 23:46
quelle