私はアラビア語と英語の両方の文章を持つ文字列を持っています。私が欲しいのは、アラビア語のセンテンスだけを抽出することです。正規表現を使用して文字列からアラビア語のテキストのみを取り出す方法は?
my_string="""
What is the reason
ذَلِكَ الْكِتَابُ لَا رَيْبَ فِيهِ هُدًى لِلْمُتَّقِينَ
behind this?
ذَلِكَ الْكِتَابُ لَا رَيْبَ فِيهِ هُدًى لِلْمُتَّقِينَ
"""
This Linkアラビア文字のUnicode範囲は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しかし、なぜ上記の試みはうまくいかないのですか? –
私は満足しています:)ありがとう –