accent insensitive Regex

8

Mein Code:

%Vor%

Ich möchte Buchstaben mit Akzenten hervorheben, zB:

%Vor%

sollte markieren: [OR] ODER [OR] OR [OR] ODER EXPRESS ORION [ORION]

Wie kann ich das tun?

    
Regexme 23.11.2010, 22:40
quelle

2 Antworten

5

Der einzig richtige Weg, dies zu tun, besteht darin, zuerst die Unicode-Normalisierungsform D , kanonische Dekomposition, auszuführen.

Sie entfernen dann alle möglichen Marken, die sich ergeben ( \pM Zeichen, oder vielleicht \p{Diacritic} , abhängig), und führen Ihre Übereinstimmung mit der de / unmarkierten Version aus.

Schreiben Sie unter keinen Umständen eine Menge Literale fest. Eek!

Boa sorte!

    
tchrist 24.11.2010, 01:32
quelle
3

Sie müssen eine Tabelle mit alternativen Zeichen erstellen und daraus dynamisch eine Regex generieren. Zum Beispiel:

%Vor%

Dann wird für search = 'cao' ein Muster [cCç][aAãÃá]o erzeugt.

    
casablanca 23.11.2010 22:56
quelle