首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中通过正则表达式在阿拉伯语和英语单词之间添加空格

在python中通过正则表达式在阿拉伯语和英语单词之间添加空格
EN

Stack Overflow用户
提问于 2018-11-10 22:29:20
回答 2查看 293关注 0票数 0

我想在我的文本中在阿拉伯语/波斯语和英语单词之间添加一个空格。它应该是python中的正则表达式。

例如:

代码语言:javascript
运行
复制
input: "علیAli"          output: "علی Ali"
input: "علیAliرضا"       output: "علی Ali رضا" 
input: "AliعلیRezaرضا"   output: "Ali علی Reza رضا"

以及任何像他们这样的人。

EN

回答 2

Stack Overflow用户

发布于 2018-11-10 23:19:06

你可以像在Python3中那样使用re.sub来做这件事:

代码语言:javascript
运行
复制
rx = r'[a-zA-Z]+'
output = re.sub(rx, r' \g<0> ', input)
票数 0
EN

Stack Overflow用户

发布于 2018-11-11 01:23:46

我认为这可以通过比较unicodes来实现,而不是正则表达式。我尝试编写相同的代码,但不知道如何再次拆分/r/n以获得所需的输出。这段代码可能对某些人有用。

代码语言:javascript
运行
复制
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')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53239934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档