Как добавить пробел после диакритического знака, только если после него не было пробела - PullRequest
0 голосов
/ 07 января 2020

Я использую это регулярное выражение для удаления диакритической метки c Араби из файла субтитров. Как ее можно изменить, чтобы добавить пробел после диакритической метки, только если после диакритической метки не было пробела? Я использую python 2.7.

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

как

أعطني المفكّ ، الآن

Мне нужно добавить пробел после ّ

, чтобы быть

أعطني المفكّ ، الآن

1 Ответ

1 голос
/ 07 января 2020

С помощью регулярных выражений вы можете искать все вхождения вашей дикторной метки, которая не имеет пробела сразу после нее:

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

[^ ] будет означать любой символ, который не является простым пробелом.

\S также возможно вместо [^ ], поскольку оно будет соответствовать всему, что не является пробелом.


https://docs.python.org/2/library/re.html

[] Используется для обозначения набора символов.

Символы, которые не находятся в пределах диапазона, могут быть сопоставлены путем дополнения набора. Если первый символ набора - «^», все символы, не входящие в набор, будут сопоставлены. Например, [^ 5] будет соответствовать любому символу, кроме «5», и [^^] будет соответствовать любому символу, кроме «^». ^ не имеет специального значения, если это не первый символ в наборе.

\S

Соответствует любому символу, который не является пробельным символом. Это противоположность \ s. Если используется флаг ASCII, он становится эквивалентом [^ \ t \ n \ r \ f \ v].

...