У меня есть текстовый файл, который включает ")رقم : ٤٢٢٧ ٢٢٤" . Я использую этот код для извлечения ٢٢٤٤٢٢٧ :
arabic_num = re.search(r':([\d\s]+)', text, re.UNICODE)
arabic_num = arabic_num.group(1)
arabic_num = arabic_num.replace(' ', '')
Но вывод неверный ٤٢٢٧٢٢٤. Это происходит, когда я удаляю пробел между ٢٢٤ и ٤٢٢٧. Как я могу это исправить, имея в виду, что любые арабские цифры могут быть между : и ), а иногда число в текстовом файле не включает пробелы между цифрами.






Это регулярное выражение захватит все между ")" и ":"
text = ")رقم : ٤٢٢٧ ٢٢٤"
arabic_num = re.search(r'\).*\:', text, re.UNICODE)
и если вам не нужны ")", ":" и пробел, вы можете удалить:
arabic_num.group().strip(")").strip(":").replace(" ", "")
Обновлено до правильной строки, но концепция аналогична. Вы можете добавить .replace(' ', ''), чтобы удалить пробелы
Спасибо. Но я хочу, чтобы вывод был ٢٢٤٤٢٢٧ не ٢٢٤ ٤٢٢٧ . Обратите внимание, что текстовая переменная в вашем коде не является строкой в вопросе.