Я хочу удалить любой неперсидский символ в строке в python. Например, если у меня есть такая строка:
00سلامabc
У меня есть персидские символы, и результат становится таким:
سلام
Я знаю, что я могу извлечь только персидские символы из строки с помощью регулярного выражения. Но у меня четыре вопроса:
Я рекомендую вам посмотреть, как работает Unicode, учитывая, сколько у вас вопросов. Stack Overflow не является учебным сайтом. Вместо этого ознакомьтесь с практическими рекомендациями по Python
Вы можете использовать регулярное выражение, чтобы найти все персидские символы и соединить их вместе...
import re
def persian_only(s):
return "".join(re.findall(r"[\u0600-\u06FF]+", s))
>>> persian_only("00سلامabc")
سلام
Https://trinket.io/python3/cc31b7b436
Ответ отличный и работает хорошо. Но каких персонажей охватывает ваш диапазон? распространяется ли это на арабские символы? Вы знаете, что в персидском языке есть проблема, заключающаяся в том, что некоторые иероглифы пишутся по-разному.
@HosseinSedghian Это арабский блок символов Юникода - fileformat.info/info/unicode/block/arabic/list.htm
В качестве альтернативы импортируйте регулярное выражение вместо re и используйте шаблон r'\p{Arabic}+' для соответствия символам арабского алфавита или r'\P{Arabic}+' для соответствия всем неарабским символам. В качестве альтернативы, если вы хотите сохранить данные, но в них нет арабских символов, выполните преобразование текста, чтобы расшифровать или транслитерировать арабский язык на латиницу.
Я рекомендую ввести заголовок вашего вопроса в Google и найти регулярное выражение в 3-м или 4-м варианте.