Mam ciąg znaków, który zawiera zarówno zdania w języku arabskim, jak i angielskim. To, czego chcę, to wydobywać tylko zdania w języku arabskim.Jak pobierać tylko teksty arabskie z ciągu za pomocą wyrażeń regularnych?
my_string="""
What is the reason
ذَلِكَ الْكِتَابُ لَا رَيْبَ فِيهِ هُدًى لِلْمُتَّقِينَ
behind this?
ذَلِكَ الْكِتَابُ لَا رَيْبَ فِيهِ هُدًى لِلْمُتَّقِينَ
"""
This Link pokazuje, że zakres Unicode literami arabskimi jest 0600-06FF
.
Tak, bardzo podstawowe próba przyszła mi do głowy to:
import re
print re.findall(r'[\u0600-\u06FF]+',my_string)
Ale to nie zdało, gdyż zwraca następującą listę.
['What', 'is', 'the', 'reason', 'behind', 'this?']
Jak widać, jest dokładnie naprzeciwko tego, co chcę. Czego tu mi brakuje?
N.B.
wiem, że można dopasować arabskie litery za pomocą dopasowania odwrotny jak poniżej:
print re.findall(r'[^a-zA-Z\s0-9]+',my_string)
Ale ja tego nie chcę.
Dzięki za miłą odpowiedź, +1 Ale dlaczego powyższa próba nie działa? –
Jestem zadowolona :) Dziękuję –