嗨,我有一个字符串数据集,有些字符串包含如下混合词:
سلام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
但是此代码未显示我想要的输出。是否有可能获得类似的输出?
答案 0 :(得分:0)
您可以将re.findall
与交替模式一起使用:
def spliteKeyWord(s):
return re.findall(r'[\dA-Za-z]+|[^\dA-Za-z\W]+', s, re.UNICODE)
答案 1 :(得分:0)
参考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单词分开。