البرمجة

حذف النصوص المتكررة في بايثون باستخدام تعبيرات القوالب

في هذا السياق، يتعين علينا التحدث عن كيفية حذف جميع التطابقات لنماذج التعبير العادية في لغة البرمجة بايثون، وذلك باستخدام وحدة re المدمجة. يظهر أن لديك قائمة من أنماط التعبير العادية (regex patterns) وترغب في استخدامها لحذف جميع التطابقات في نص معين.

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

فيما يلي تعديل على الكود الخاص بك:

python
import re def clean_text(rgx_list, text): for r in rgx_list: rgx = re.compile(r) text = re.sub(rgx, '', text) # استخدام re.sub لحذف التطابقات return text

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

عند تشغيل هذه الدالة باستخدام النص وقائمة النماذج الخاصة بك، سيتم حذف جميع التطابقات ويتم إرجاع النص المنقى. يمكنك استخدامها كالتالي:

python
rgx_list = ['pattern_1', 'pattern_2', 'pattern_3'] text_to_clean = "Your input text here" cleaned_text = clean_text(rgx_list, text_to_clean) print(cleaned_text)

هذا التعديل يتيح لك حذف جميع التطابقات في النص بناءً على النماذج التي قمت بتحديدها في قائمة rgx_list.

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

بالتأكيد، دعونا نستكشف هذا السياق بمزيدٍ من التفصيل. يبدو أنك تواجه تحديًا في حذف جميع النتائج المتطابقة لأنماط البحث باستخدام تعبيرات القوالب في بايثون. في هذا السياق، يُظهر الشيفرة التي قدمتها لنا استخدام قائمة من أنماط البحث (regex patterns) وتطبيقها على النص المعطى.

لكن، وبما أن الهدف هو حذف جميع النتائج المتطابقة وليس فقط الظهور الأول من كل نمط، يبدو أن الجزء الناقص يكمن في تطبيق عملية حذف فعلية على النص بعد العثور على جميع النتائج المطابقة. يمكن تحقيق ذلك بواسطة دمج النتائج المتطابقة في نص جديد ثم حذف هذا النص من النص الأصلي.

لتحقيق هذا الهدف، يمكن تعديل الدالة clean_text بالنحو التالي:

python
import re def clean_text(rgx_list, text): for r in rgx_list: rgx = re.compile(r) found_matches = re.findall(rgx, text) for match in found_matches: text = text.replace(match, '') return text

في هذا التحسين، يتم استخدام replace لحذف كل مطابقة من النص. النص الجديد يتم إرجاعه بعد تطبيق كل نمط في القائمة. هذا التعديل يسمح بحذف جميع الظهور لكل نمط في النص.

بهذه الطريقة، يمكنك الآن استخدام الدالة clean_text لتحقيق هدفك في حذف جميع النتائج المتطابقة بناءً على الأنماط المعطاة.

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

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

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر