Python und regulärer Ausdruck mit Unicode
Ich löschen müssen einige Unicode-Zeichen aus dem string 'بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ'
Ich weiß, Sie existieren hier sicher. Ich habe versucht:
re.sub('([\u064B-\u0652\u06D4\u0670\u0674\u06D5-\u06ED]+)', '', 'بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ')
aber es funktioniert nicht. String bleibt gleich. Was mache ich falsch?
InformationsquelleAutor der Frage bsn | 2008-12-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie mit python 2.x oder 3.0?
Wenn Sie mit 2.x versuchen Sie die regex-Zeichenkette ein unicode-escape-Zeichenfolge, die mit 'u'. Da es für die regex-es ist gute Praxis, um Ihre regex-string ein raw-string, der mit 'r'. Auch, indem Sie Ihre gesamte Muster in Klammern ist überflüssig.
http://docs.python.org/tutorial/introduction.html#unicode-strings
Edit:
Es ist auch eine gute übung zur Verwendung der re.UNICODE/re.U/(?u) flag für unicode-regexes, aber es wirkt sich nur auf Charakter-Klasse Aliase wie \w und \b, von denen dieses Muster hat nicht jeder und wäre nicht betroffen.
InformationsquelleAutor der Antwort ʞɔıu
Verwenden unicode strings. Verwenden Sie die re.UNICODE Flagge.
Lesen Sie den Artikel von Joel Spolsky genannt Das Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
InformationsquelleAutor der Antwort nosklo