في لغة البرمجة باستخدام بايثون، يُظهر استخدام التعبيرات العادية (Regular Expressions) كفعالة لاستخراج النصوص بين سلسلتين معينتين. في هذا السياق، يُرغب في استخراج النص الواقع بين “General Comment text : ” و “Setup done by :” من النص الذي قدمته.
لتحقيق ذلك باستخدام بايثون، يمكننا استخدام مكتبة الـ Regular Expressions المدمجة في اللغة، وهي re
. سنقوم بكتابة برنامج يقوم بفحص النص واستخدام تعبيرات عادية لاستخراج الجزء المطلوب. اليك الكود:
pythonimport re
# النص الذي نريد استخراج النص منه
text_to_search = """
Below is the complete text from which i want to retrieve the text between "
General Comment text : " and "Setup done by :"
Text:
DONE
The C-Arm Test cell humidity in % RH is:
Observed value : 25
General Comment text :
{\rtf1\fbidis\ansi\ansicpg936\deff0{\fonttbl{\f0\fnil\fcharset0 Tahoma;}}
{*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\ltrpar\lang1033\f0\fs20 No measurements were taken\par
}
Setup done by : 502184520
Setup done on : 03/24/16
"""
# تعريف التعبير العادي لاستخراج النص بين السلسلتين
pattern = re.compile(r'General Comment text : "(.*?)"Setup done by :')
# البحث عن النص المستخرج
match = re.search(pattern, text_to_search)
# إذا تم العثور على تطابق
if match:
extracted_text = match.group(1)
print("النص المستخرج:")
print(extracted_text)
else:
print("لم يتم العثور على تطابق")
يقوم هذا البرنامج بتعريف تعبير عادي (pattern
) يستخدم لاستخراج النص بين السلسلتين المحددتين. ثم يقوم بالبحث عن تطابق في النص المعطى، وإذا تم العثور على تطابق، يتم طباعة النص المستخرج. إذا لم يتم العثور على تطابق، يُطبع رسالة تفيد بعدم وجود تطابق.
هذا البرنامج يوفر الحلا البرمجي لاستخراج النص بين السلسلتين المحددتين في النص المعطى.
المزيد من المعلومات
بالطبع، دعنا نقوم بتوسيع المحتوى وتوفير مزيد من المعلومات. في هذا السياق، يُظهر البرنامج البرمجي الذي تم توفيره استخدام تقنيات تحليل النصوص في بايثون.
لفهم أكثر حول كيفية عمل البرنامج، يمكننا النظر إلى الكود بتفصيل:
-
Importing the necessary module:
يتم استيراد مكتبةre
التي توفر وظائف لتحليل التعبيرات العادية في بايثون.pythonimport re
-
Defining the text to search:
يتم تعريف النص الذي سنقوم بالبحث فيه باستخدام تعبيرات عادية.pythontext_to_search = """ ... (النص المقدم سابقًا) ... """
-
Defining the regular expression pattern:
يتم تعريف تعبير عادي (pattern
) الذي يحدد السلسلة التي نريد استخراج النص منها.pythonpattern = re.compile(r'General Comment text : "(.*?)"Setup done by :')
في هذا التعبير،
(.*?)
يُستخدم لتحديد أي نص يوجد بين “General Comment text : ” و “Setup done by :” بطريقة تشمل أقل عدد ممكن من الحروف (.*?
). -
Searching for a match:
يتم استخدامre.search
للبحث عن تطابق في النص باستخدام التعبير العادي.pythonmatch = re.search(pattern, text_to_search)
-
Extracting the matched text:
إذا تم العثور على تطابق، يتم استخراج النص المتطابق باستخدامmatch.group(1)
.pythonif match: extracted_text = match.group(1)
-
Printing the extracted text:
يتم طباعة النص المستخرج إذا كان هناك تطابق، وإلا يُطبع رسالة تفيد بعدم وجود تطابق.pythonif match: print("النص المستخرج:") print(extracted_text) else: print("لم يتم العثور على تطابق")
بهذه الطريقة، يُظهر البرنامج البرمجي كيف يمكن استخدام تعبيرات البحث لاستخراج النص المحدد بين سلسلتين محددتين في نص أكبر.