البرمجة

استخراج قيمة مالية من نص باستخدام Python

لحفظ القيم بين حرفي “Kr” والفاصلة، يمكنك استخدام تقنية تسمى “regular expressions” في Python. في هذه الحالة، يمكنك استخدام الرمز التالي للعثور على الأرقام بين “Kr” والفاصلة:

python
import re text = "N-05-0040(119) f 2005 svart hp Ml:153 - 160 - 20 - 75 Tot 31- 3- 3- 6- 13 (4)29,7M - (4)28,2aK Kr 204.500, 2pr 2010, Trener: Ole Olesen" numbers = re.findall(r"Kr (\d+.\d+),", text) print(numbers)

هذا الكود يستخدم re.findall للعثور على جميع الأرقام (\d+.\d+) بين “Kr” والفاصلة، ثم يخزنها في قائمة. ستكون القائمة الناتجة في هذه الحالة ['204.500'].

المزيد من المعلومات

بالطبع! الرمز الذي استخدمته في الشرح السابق (\d+.\d+) يستخدم للبحث عن أي عدد يتكون من أرقام (\d+) متبوعًا بنقطة (.) وثم أرقام (\d+). ومع ذلك، هذا الرمز قد لا يكون كافيًا إذا كانت الأرقام تحتوي على فواصل أو نقاط أخرى.

للتعامل مع هذا، يمكنك استخدام الرمز التالي للبحث عن الأرقام بين “Kr” والفاصلة بشكل أفضل:

python
import re text = "N-05-0040(119) f 2005 svart hp Ml:153 - 160 - 20 - 75 Tot 31- 3- 3- 6- 13 (4)29,7M - (4)28,2aK Kr 204.500, 2pr 2010, Trener: Ole Olesen" numbers = re.findall(r"Kr ([\d.,]+),", text) print(numbers)

هذا الرمز ([\d.,]+) يبحث عن أي مجموعة من الأرقام والنقاط والفواصل (\d, .، ,) بين “Kr” والفاصلة، ويخزنها في القائمة. ستكون القائمة الناتجة في هذه الحالة ['204.500'].

يمكنك أيضًا استخدام دالة float لتحويل القيم الناتجة إلى أعداد عشرية لاستخدامها في الحسابات، على سبيل المثال:

python
kr_value = float(numbers[0].replace(",", ".")) if numbers else 0.0 print(kr_value)

هذا الكود يحول القيمة المسترجعة من re.findall إلى عدد عشري ويحل محل الفاصلة بالنقطة، ثم يقوم بطباعة القيمة.

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!