У меня есть строка, которая содержит как арабские, так и английские предложения. Я хочу только извлечь арабские предложения.Как получить только арабские тексты из строки, используя регулярное выражение?
my_string="""
What is the reason
ذَلِكَ الْكِتَابُ لَا رَيْبَ فِيهِ هُدًى لِلْمُتَّقِينَ
behind this?
ذَلِكَ الْكِتَابُ لَا رَيْبَ فِيهِ هُدًى لِلْمُتَّقِينَ
"""
This Link показывает, что диапазон Юникода для арабских букв 0600-06FF
.
Итак, очень простой попытка пришла мне в голову:
import re
print re.findall(r'[\u0600-\u06FF]+',my_string)
Но это не жалко, как он возвращает следующий список.
['What', 'is', 'the', 'reason', 'behind', 'this?']
Как вы можете видеть, это точно противоположно тому, что я хочу. Что мне здесь не хватает?
N.B.
Я знаю, что могу соответствовать арабские буквы с помощью обратного соответствия, как показано ниже:
print re.findall(r'[^a-zA-Z\s0-9]+',my_string)
Но я не хочу этого.
Спасибо за хороший ответ, +1 Но почему эта попытка не работает? –
Я удовлетворен :) Спасибо –