البحث والاستبدال
يمكنك التنقل بسهولة داخل المستند باستخدام لوحة المفاتيح والماوس، ولكن إذا كان لديك العديد من الصفحات للتمرير عبرها، فسوف يستغرق الأمر بعض الوقت للعثور على نص محدد في مستند طويل. سيستغرق الأمر وقتًا أطول عندما تريد استبدال أحرف أو كلمات معينة استخدمتها في المستند. تتيح لك وظيفة “البحث والاستبدال” العثور على سلسلة من الأحرف في المستند واستبدالها بتسلسل آخر من الأحرف.
يتيح لك Aspose.Words العثور على سلسلة محددة أو نمط تعبير عادي في مستندك واستبداله ببديل دون تثبيت واستخدام تطبيقات إضافية مثل Microsoft Word. سيؤدي هذا إلى تسريع العديد من مهام الكتابة والتنسيق، مما قد يوفر عليك ساعات من العمل.
تشرح هذه المقالة كيفية تطبيق استبدال السلسلة والتعبيرات العادية بدعم من الأحرف الأولية.
طرق البحث عن {#ways-to-find-and-replace} واستبداله
يوفر Aspose.Words طريقتين لتطبيق عملية البحث والاستبدال باستخدام ما يلي:
- استبدال سلسلة بسيطة - للعثور على سلسلة معينة واستبدالها بسلسلة أخرى، تحتاج إلى تحديد سلسلة بحث (أحرف أبجدية رقمية) سيتم استبدالها وفقًا لجميع التكرارات بسلسلة بديلة أخرى محددة. يجب ألا تحتوي كلا السلسلتين على رموز. ضع في الاعتبار أن مقارنة السلاسل يمكن أن تكون حساسة لحالة الأحرف، أو قد لا تكون متأكدًا من التهجئة أو لديك العديد من التهجئة المشابهة.
- التعبيرات العادية - لتحديد تعبير عادي للعثور على تطابقات السلسلة الدقيقة واستبدالها وفقًا لتعبيرك العادي. لاحظ أنه يتم تعريف الكلمة على أنها تتكون من أحرف أبجدية رقمية فقط. إذا تم تنفيذ الاستبدال مع مطابقة الكلمات الكاملة فقط وكانت سلسلة الإدخال تحتوي على رموز، فلن يتم العثور على أي عبارات.
بالإضافة إلى ذلك، يمكنك استخدام أحرف أولية خاصة مع استبدال سلسلة بسيط وتعبيرات عادية لتحديد الفواصل ضمن عملية البحث والاستبدال.
يقدم Aspose.Words وظيفة البحث والاستبدال باستخدام وحدة aspose.words.replacing. يمكنك العمل مع العديد من الخيارات أثناء عملية البحث والاستبدال باستخدام فئة FindReplaceOptions.
البحث عن النص واستبداله باستخدام استبدال السلسلة البسيطة
يمكنك استخدام إحدى طريقتي replace وreplace_regex للعثور على سلسلة معينة أو استبدالها وإرجاع عدد عمليات الاستبدال التي تم إجراؤها. في هذه الحالة، يمكنك تحديد سلسلة سيتم استبدالها، وسلسلة ستحل محل جميع تكراراتها، وما إذا كان الاستبدال حساسًا لحالة الأحرف، وما إذا كانت الكلمات المستقلة فقط ستتأثر.
يوضح مثال التعليمات البرمجية التالي كيفية العثور على السلسلة “CustomerName” واستبدالها بالسلسلة “James Bond”:
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.writeln("Hello _CustomerName_,")
print("Original document text: " + doc.range.text)
doc.range.replace("_CustomerName_", "James Bond", aw.replacing.FindReplaceOptions(aw.replacing.FindReplaceDirection.FORWARD))
print("Document text after replace: " + doc.range.text)
# Save the modified document
doc.save(docs_base.artifacts_dir + "FindAndReplace.simple_find_replace.docx")
يمكنك ملاحظة الفرق بين المستند قبل تطبيق استبدال السلسلة البسيط:
وبعد تطبيق استبدال السلسلة البسيط:
البحث عن النص واستبداله باستخدام التعبيرات العادية
التعبير العادي هو نمط يصف تسلسلًا معينًا من النص. لنفترض أنك تريد استبدال كافة التكرارات المزدوجة للكلمة بتكرار كلمة واحدة. ثم يمكنك تطبيق التعبير العادي التالي لتحديد نمط الكلمة المزدوجة: ([a-zA-Z]+) \1
.
استخدم طريقة replace_regex للبحث عن مجموعات أحرف معينة واستبدالها عن طريق تعيين معلمة التعبير العادي كنمط للعثور على التطابقات.
يوضح مثال التعليمات البرمجية التالي كيفية استبدال السلاسل التي تطابق نمط التعبير العادي بسلسلة استبدال محددة:
يمكنك ملاحظة الفرق بين المستند قبل تطبيق استبدال السلسلة بالتعبيرات العادية:
وبعد تطبيق استبدال السلسلة بالتعبيرات العادية:
البحث عن السلسلة واستبدالها باستخدام الأحرف الأولية
يمكنك استخدام الأحرف الأولية في سلسلة البحث أو سلسلة الاستبدال إذا كان نص أو عبارة معينة تتكون من فقرات أو أقسام أو صفحات متعددة. تتضمن بعض الأحرف الأولية & ص لفاصل الفقرة، و**&ب** لفاصل القسم، و**& م** لفاصل الصفحة، و**& ل** لفاصل الأسطر.
يوضح مثال التعليمات البرمجية التالي كيفية استبدال النص بالفقرة وفاصل الصفحات:
البحث عن سلسلة واستبدالها في رأس/تذييل مستند
يمكنك البحث عن النص واستبداله في قسم الرأس/التذييل في مستند Word باستخدام فئة HeaderFooter.
يوضح مثال التعليمات البرمجية التالي كيفية استبدال نص قسم الرأس في المستند الخاص بك:
يمكنك ملاحظة الفرق بين المستند قبل تطبيق استبدال سلسلة الرأس:
وبعد تطبيق استبدال سلسلة الرأس:
يشبه مثال التعليمات البرمجية لاستبدال نص قسم التذييل في مستندك إلى حد كبير مثال رمز الرأس السابق. كل ما عليك فعله هو استبدال السطرين التاليين:
header = headersFooters.get_by_header_footer_type(aw.HeaderFooterType.HEADER_PRIMARY)
header.range.replace("Aspose.Words", "Remove", options)
كالآتي:
header = headersFooters.get_by_header_footer_type(aw.HeaderFooterType.FOOTER_PRIMARY)
header.range.replace("Aspose.Words", "Remove", options)
يمكنك ملاحظة الفرق بين المستند قبل تطبيق استبدال سلسلة التذييل:
وبعد تطبيق استبدال سلسلة التذييل:
تجاهل النص أثناء البحث عن {#ignore-text-during-find-and-replace} واستبداله
أثناء تطبيق عملية البحث والاستبدال، يمكنك تجاهل أجزاء معينة من النص. لذلك، يمكن استبعاد أجزاء معينة من النص من البحث، ويمكن تطبيق البحث والاستبدال على الأجزاء المتبقية فقط.
يوفر Aspose.Words العديد من خصائص البحث والاستبدال لتجاهل النص مثل ignore_deleted وignore_fields وignore_inserted.
يوضح مثال التعليمات البرمجية التالي كيفية تجاهل النص داخل حذف المراجعات:
تخصيص عملية البحث والاستبدال
يوفر Aspose.Words العديد من الخصائص المختلفة للبحث عن النص واستبداله مثل تطبيق تنسيق معين بخصائص apply_font وapply_paragraph_formats، واستخدام البدائل في أنماط الاستبدال بخاصية use_substitutions، وغيرها.
يوضح مثال التعليمات البرمجية التالي كيفية تمييز كلمة معينة في مستندك: