Ho una stringa con frasi sia in arabo che in inglese. Quello che voglio è estrarre solo le Sentenze Arabe.Come recuperare solo i testi arabi da una stringa usando l'espressione regolare?
my_string="""
What is the reason
ذَلِكَ الْكِتَابُ لَا رَيْبَ فِيهِ هُدًى لِلْمُتَّقِينَ
behind this?
ذَلِكَ الْكِتَابُ لَا رَيْبَ فِيهِ هُدًى لِلْمُتَّقِينَ
"""
This Link mostra che il campo Unicode per le lettere arabe è 0600-06FF
.
Quindi, tentativo molto di base è venuta in mente è:
import re
print re.findall(r'[\u0600-\u06FF]+',my_string)
Ma, questo fallisce miseramente in quanto restituisce il seguente elenco.
['What', 'is', 'the', 'reason', 'behind', 'this?']
Come potete vedere, questo è esattamente opposto di quello che voglio. Cosa mi manca qui?
N.B.
so di poter abbinare le lettere arabe utilizzando corrispondenza inversa come di seguito:
print re.findall(r'[^a-zA-Z\s0-9]+',my_string)
Ma, io non voglio questo.
Grazie per la tua bella risposta, +1 Ma perché il tentativo di cui sopra non funziona? –
Sono soddisfatto :) Grazie –