在非字母数字字符和字母数字字符之间插入空格,特定字符除外(Python)

2024-09-24 14:27:41 发布

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

有没有机会排除一些unicode(非字母数字)的考虑范围? 我正在标记包含变音符号的阿拉伯单词,这被认为是非字母数字字符,但我不想删除它们,我需要在非字母数字字符(除了音调符号)和字母数字字符之间有一个空格。。这是用正则表达式?我要排除的代表音调符号的unicode如下:u'\u064b',u'\u064c',u'\u064d',u'\u064e',u'\u064f',u'\u0650',u'\u0651',u'\u0652'

有可能吗?在

非常感谢


Tags: 标记字母unicode符号代表数字字符单词
1条回答
网友
1楼 · 发布于 2024-09-24 14:27:41

只需为您的目的构建一个自定义的字母数字模式:

accents = [u'\u064b', u'\u064c', u'\u064d', u'\u064e', u'\u064f', u'\u0650', u'\u0651', u'\u0652']
alnum = r'([\w%s]+)' % re.escape(''.join(accents))
pattern = re.compile(alnum, re.UNICODE)

要查找所有令牌:

^{pr2}$

现在在令牌和其他令牌之间留出一个空格:

>>> ' '.join(filter(None, pattern.split(test_str)))
'... fooًٌٍَُِّْ ... bar'
>>> len(_.split())
4

相关问题 更多 >