あなたのサンプルを使用して、ہ
またはを含むすべての単語を見つけましたر
正規表現文字列とデータ文字列の前に u を使用して、utf-8 データを扱っていることを python に伝える必要があることに注意してください。
import re
data = u"""
ظہیر
احمد
ماہرہ
خان
.....
"""
result = re.findall(u'[^\s\n]+[ہر][^\s\n]+',data,re.MULTILINE)
print(result)
出力は
['ظہیر', 'ماہرہ', 'تصاویر،', 'پہنچایا', '،ہوا']
別の例では、空白を除くすべての非アルファベットを削除し、1 つの空白のみが単語を区切るようにします。
result = re.sub(' +',' ',re.sub(u'[\W\s]',' ',data))
print(result)
出力は
ظہیر احمد ماہرہ خان کی تصاویر نے دائیں اور بائیں والوں کو آسمانوں پر پہنچایا ہوا ہے دائیں والے
単語 tokanizer を使用することもできます。
import nltk
result = nltk.tokenize.wordpunct_tokenize(data)
print(result)
出力は次のようになります
['ظہیر', 'احمد', 'ماہرہ'
, 'خان', 'کی', '،', 'تصاویر'
, '،', 'نے', 'دائیں', 'اور', 'بائیں', 'والوں'
, 'کو', 'آسمانوں', 'پر', 'پہنچایا'
, '،', 'ہوا', 'ہے', '۔', 'دائیں', '؟', 'والے']
編集... Python 2.7の場合、コードファイルの先頭でエンコーディングを指定するだけでなくre
、正規表現が「ユニコード」であることを指定する必要がありますre.UNICODE
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import re
data = u"""ظہیر
احمد
ماہرہ
خان
کی،
.....
"""
result = re.sub(ur'\s+',u' ',re.sub(ur'[\W\s]',ur' ',data,re.UNICODE),re.UNICODE)
print(result)
ur''
文字列が Unicode 正規表現文字列であることを指定するために を使用することにも注意してください