XML specification, yasa dışı veya "cesareti kırılmış" bir grup Unicode karakterini listeler. Bir dize verildiğinde, tüm yasadışı karakterleri nasıl kaldırabilirim?Python'da yasa dışı xml unicode karakterleri filtrelemenin hızlı yolu?
Aşağıdaki normal ifadeyle ortaya çıktım, ama biraz da ağız dolusu.
illegal_xml_re = re.compile(u'[\x00-\x08\x0b-\x1f\x7f-\x84\x86-\x9f\ud800-\udfff\ufdd0-\ufddf\ufffe-\uffff]')
clean = illegal_xml_re.sub('', dirty)
(Python 2.5, 0xFFFF yukarıda Unicode karakter hakkında o filtrelemek için çok gerek bilmiyor.) Ayrıca, seçilen codepoints silmek yöntemini çevirmek unicode kullanabilirsiniz
Python'un maksimum unicode kod noktası, derlendiğinde nasıl yapılandırıldığına bağlı olarak, 'sys.maxunicode' seçeneğini işaretleyin. – u0b34a0f6ae
Haklısınız. Sanırım daha da karmaşık. – itsadok
Makinemde, 2.3mb'lik bir dizeyi işlemek için bu normal ifadeyi kullanarak .34 saniye sürüyor. Bu bana oldukça hızlı geliyor. –