首页 > 解决方案 > 如何将变音符号向左移动一个字母

问题描述

我正在使用此正则表达式从字幕文件中删除阿拉伯变音符号,是否可以对其进行修改以将变音符号仅向左移动一个字母而不是删除它?我正在使用python 2.7。

file_content = re.sub(u'\u0651', '', file_content)  

这是字幕文件中的原始行,变音符号位于正确位置

أنا لا أترصّد عبر الإنترنت

这就是我需要的样子

أنا لا أترصدّ عبر الإنترنت

我正在使用一个媒体播放器,由于某种原因将变音标记向右移动一个字母,因此在使用此媒体播放器时,为了将变音标记放在正确的位置,我需要将变音标记向左移动一个字母字幕文件。

https://github.com/xbmc/xbmc/issues/17076

标签: python

解决方案


我不知道您的变音符号在 Unicode 中是如何工作的,但总的来说,您必须在字符串中进行以下类型的替换:

x' -> 'x

这很容易通过一次替换来完成:

file_content = re.sub('(.)([ًٌٍَُِّ])', r'\2\1', file_content)

当然,这假设您在字母之前/之后只有一个变音符号,并且变音符号每次都是单独的 Unicode 字符。


推荐阅读