如何在python中分离混合词(波斯语和英语)

2024-04-19 17:28:21 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我有一个字符串数据集,有些字符串有混合词,例如:

    سلام12World
    دوربینdigital
    سال2012good

。。。 我想要的结果是:

   12 سلام world
   دوربین digital
   2012 سال good

这是我的密码:

 def spliteKeyWord(str):
     regex = r"[\u200b-\u200c]|[0-9]+|[a-zA-Z]+\'*[a-z]*"
     matches = re.findall(regex, str, re.UNICODE)
     return matches

但是这个代码没有显示我想要的输出。有可能得到这样的输出吗?你知道吗


Tags: 数据字符串re密码worlddefregexgood
2条回答

可以将re.findall与交替模式一起使用:

def spliteKeyWord(s):
    return re.findall(r'[\dA-Za-z]+|[^\dA-Za-z\W]+', s, re.UNICODE)

引用this question,可以使用此正则表达式解析非ascii字符:

words = ['12سلامWorld','دوربینdigital','2012سالgood']

for w in words:
    re.split(r'([^\x00-\x7F]+)', w)


# ['12', 'سلام', 'World']
# ['', 'دوربین', 'digital']
# ['2012', 'سال', 'good']

这将在非ascii字之间分割所有内容。你知道吗

相关问题 更多 >