البحث والاستبدال

يمكنك التنقل بسهولة داخل المستند باستخدام لوحة المفاتيح والماوس، ولكن إذا كان لديك العديد من الصفحات للتمرير عبرها، فسوف يستغرق الأمر بعض الوقت للعثور على نص محدد في مستند طويل. سيستغرق الأمر وقتًا أطول عندما تريد استبدال أحرف أو كلمات معينة استخدمتها في المستند. تتيح لك وظيفة “البحث والاستبدال” العثور على سلسلة من الأحرف في المستند واستبدالها بتسلسل آخر من الأحرف.

يتيح لك Aspose.Words العثور على سلسلة محددة أو نمط تعبير عادي في مستندك واستبداله ببديل دون تثبيت واستخدام تطبيقات إضافية مثل Microsoft Word. سيؤدي هذا إلى تسريع العديد من مهام الكتابة والتنسيق، مما قد يوفر عليك ساعات من العمل.

تشرح هذه المقالة كيفية تطبيق استبدال السلسلة والتعبيرات العادية بدعم من الأحرف الأولية.

طرق البحث عن {#ways-to-find-and-replace} واستبداله

يوفر Aspose.Words طريقتين لتطبيق عملية البحث والاستبدال باستخدام ما يلي:

  1. استبدال سلسلة بسيطة - للعثور على سلسلة معينة واستبدالها بسلسلة أخرى، تحتاج إلى تحديد سلسلة بحث (أحرف أبجدية رقمية) سيتم استبدالها وفقًا لجميع التكرارات بسلسلة بديلة أخرى محددة. يجب ألا تحتوي كلا السلسلتين على رموز. ضع في الاعتبار أن مقارنة السلاسل يمكن أن تكون حساسة لحالة الأحرف، أو قد لا تكون متأكدًا من التهجئة أو لديك العديد من التهجئة المشابهة.
  2. التعبيرات العادية - لتحديد تعبير عادي للعثور على تطابقات السلسلة الدقيقة واستبدالها وفقًا لتعبيرك العادي. لاحظ أنه يتم تعريف الكلمة على أنها تتكون من أحرف أبجدية رقمية فقط. إذا تم تنفيذ الاستبدال مع مطابقة الكلمات الكاملة فقط وكانت سلسلة الإدخال تحتوي على رموز، فلن يتم العثور على أي عبارات.

بالإضافة إلى ذلك، يمكنك استخدام أحرف أولية خاصة مع استبدال سلسلة بسيط وتعبيرات عادية لتحديد الفواصل ضمن عملية البحث والاستبدال.

يقدم Aspose.Words وظيفة البحث والاستبدال بمساحة الاسم Aspose.Words.Replacing. يمكنك العمل مع العديد من الخيارات أثناء عملية البحث والاستبدال باستخدام فئة FindReplaceOptions.

البحث عن النص واستبداله باستخدام استبدال سلسلة بسيط

يمكنك استخدام إحدى طرق Replace للعثور على سلسلة معينة أو استبدالها وإرجاع عدد عمليات الاستبدال التي تم إجراؤها. في هذه الحالة، يمكنك تحديد سلسلة سيتم استبدالها، وسلسلة ستحل محل جميع تكراراتها، وما إذا كان الاستبدال حساسًا لحالة الأحرف، وما إذا كانت الكلمات المستقلة فقط ستتأثر.

يوضح مثال التعليمات البرمجية التالي كيفية العثور على السلسلة “CustomerName” واستبدالها بالسلسلة “James Bond”:

يمكنك ملاحظة الفرق بين المستند قبل تطبيق استبدال السلسلة البسيط:

قبل استبدال السلسلة البسيطة

وبعد تطبيق استبدال السلسلة البسيط:

بعد استبدال السلسلة البسيطة

البحث عن النص واستبداله باستخدام التعبيرات العادية

التعبير العادي (regex) هو نمط يصف تسلسلًا معينًا من النص. لنفترض أنك تريد استبدال كافة التكرارات المزدوجة للكلمة بتكرار كلمة واحدة. ثم يمكنك تطبيق التعبير العادي التالي لتحديد نمط الكلمة المزدوجة: ([a-zA-Z]+) \1.

استخدم طريقة Replace الأخرى للبحث عن مجموعات أحرف معينة واستبدالها عن طريق تعيين المعلمة Regex كنمط التعبير العادي للعثور على التطابقات.

يوضح مثال التعليمات البرمجية التالي كيفية استبدال السلاسل التي تطابق نمط التعبير العادي بسلسلة استبدال محددة:

يمكنك ملاحظة الفرق بين المستند قبل تطبيق استبدال السلسلة بالتعبيرات العادية:

قبل الاستبدال بالتعبيرات العادية

وبعد تطبيق استبدال السلسلة بالتعبيرات العادية:

بعد الاستبدال بالتعبيرات العادية

البحث عن السلسلة واستبدالها باستخدام الأحرف الأولية

يمكنك استخدام الأحرف الأولية في سلسلة البحث أو سلسلة الاستبدال إذا كان نص أو عبارة معينة تتكون من فقرات أو أقسام أو صفحات متعددة. تتضمن بعض الأحرف الأولية & ص لفاصل الفقرة، و**&ب** لفاصل القسم، و**& م** لفاصل الصفحة، و**& ل** لفاصل الأسطر.

يوضح مثال التعليمات البرمجية التالي كيفية استبدال النص بالفقرة وفاصل الصفحات:

يمكنك البحث عن النص واستبداله في قسم الرأس/التذييل لمستند Word باستخدام فئة HeaderFooter.

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

يمكنك ملاحظة الفرق بين المستند قبل تطبيق استبدال سلسلة الرأس:

قبل تطبيق استبدال سلسلة الرأس

وبعد تطبيق استبدال سلسلة الرأس:

بعد تطبيق استبدال سلسلة الرأس

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

HeaderFooter header = headersFooters[HeaderFooterType.HeaderPrimary];
header.Range.Replace("Aspose.Words", "Remove", options);

كالآتي:

HeaderFooter footer = headersFooters[HeaderFooterType.FooterPrimary];
int currentYear = System.DateTime.Now.Year;
footer.Range.Replace("(C) 2006 Aspose Pty Ltd.", $"Copyright (C) {currentYear} by Aspose Pty Ltd.", options);

يمكنك ملاحظة الفرق بين المستند قبل تطبيق استبدال سلسلة التذييل:

قبل تطبيق استبدال سلسلة التذييل

وبعد تطبيق استبدال سلسلة التذييل:

بعد تطبيق استبدال سلسلة التذييل

تجاهل النص أثناء البحث عن {#ignore-text-during-find-and-replace} واستبداله

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

يوفر Aspose.Words العديد من خصائص البحث والاستبدال لتجاهل النص مثل IgnoreDeleted وIgnoreFieldCodes وIgnoreFields وIgnoreFootnotes وIgnoreInserted.

يوضح مثال التعليمات البرمجية التالي كيفية تجاهل النص داخل حذف المراجعات:

تخصيص عملية البحث والاستبدال

يوفر Aspose.Words العديد من نصوص properties المختلفة للبحث عن النص واستبداله، مثل تطبيق تنسيق معين بخصائص ApplyFont وApplyParagraphFormats، واستخدام البدائل في أنماط الاستبدال بخاصية UseSubstitutions، وغيرها.

يوضح مثال التعليمات البرمجية التالي كيفية تمييز كلمة معينة في مستندك:

يتيح لك Aspose.Words استخدام واجهة IReplacingCallback لإنشاء واستدعاء طريقة مخصصة أثناء عملية الاستبدال. قد يكون لديك بعض حالات الاستخدام التي تحتاج فيها إلى تخصيص عملية البحث والاستبدال، مثل استبدال النص المحدد بتعبير عادي بعلامات HTML، لذلك ستطبق بشكل أساسي الاستبدال بإدراج HTML.

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

يوضح مثال التعليمات البرمجية التالي كيفية استبدال النص المحدد بـ HTML:

يوضح مثال التعليمات البرمجية التالي كيفية تمييز الأرقام الموجبة باللون الأخضر والأرقام السالبة باللون الأحمر:

يوضح مثال التعليمات البرمجية التالي كيفية إضافة رقم سطر إلى كل سطر: