我想在文本中的阿拉伯语/波斯语和英语单词之间添加一个空格。 它应该在python中带有正则表达式。
例如:
input: "علیAli" output: "علی Ali"
input: "علیAliرضا" output: "علی Ali رضا"
input: "AliعلیRezaرضا" output: "Ali علی Reza رضا"
以及他们喜欢的东西。
答案 0 :(得分:0)
您可以使用re.sub
来完成此操作,就像python 3中的以下操作一样:
rx = r'[a-zA-Z]+'
output = re.sub(rx, r' \g<0> ', input)
答案 1 :(得分:0)
我认为可以通过比较unicode来代替正则表达式。我尝试编写相同的代码,但不知道如何再次拆分/ r / n以获取所需的输出。此代码可能对某些人有用。
import codecs,string
def detect_language(character):
maxchar = max(character)
if u'\u0041' <= maxchar <= u'\u007a':
return 'eng'
with codecs.open('letters.txt', encoding='utf-8') as f:
eng_list = []
eng_var =0
arab_list = []
arab_var=0
input = f.read()
for i in input:
isEng = detect_language(i)
if isEng == "eng":
eng_list.append(i)
eng_var = eng_var + 1
elif '\n' in i or '\r' in i:
eng_list.append(i)
arab_list.append(i)
else:
arab_list.append(i)
arab_var =arab_var +1
temp = str(eng_list)
temp1 = temp.encode('ascii','ignore')