English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

مثال على استخدام طريقة Matcher hasTransparentBounds() في Java

فئة java.util.regex.Matcher تمثل المحرك الذي يقوم بتنفيذ مختلف العمليات المُطابقة. لا تحتوي هذه الفئة على مُنشئ، يمكن استخدامهامطابقة()يُنشأ/يُحصل على الموضوع من طريقة فئة java.util.regex.Pattern.

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

"\\A(?=\\w{6,10}\\z)";

بالتّقدير الافتراضي، الحدود للمطابقة للتحرك للأمام والتحرك للخلف والمطابقة للحدود غير شفافة، أي أن هذه الهياكل لا يمكنها مطابقة محتوى النص الموجود خارج الحدود

للفئةللميثودهلديحدودشفافة()يُحقق هذا الطريقة ما إذا كانت المُطابقة الحالية تستخدم الحدود الشفافة، إذا كانت كذلك، فإنها تعود الحقيقة، وإلا تعود الحقيقة.

مثال1

إيرادتمثال.أولبك.سكانر;
إيرادتمثال.أولبك.ريجكس.تمثال;
إيرادتمثال.أولبك.ريجكس.تمثال;
publicتمثال فئةتمثالترانزبرنتباندز {
   publicتمثال ستاتيكفولد(تمثال[]تمثال) {
      //يمكن للعبرة النمطية أن تقبل من 6 إلى 10 حرف
      Stringتمثال = "\\A(?=\\w{6,10}\\z)";
      نظام.أوبرينت("إدخل 5 إلى 12 حرف: ");
      Stringتمثال = جديدسكانر(نظام.إدخال).التالي();
      //يُنشأ نموذج نموذج
      مثالتمثال تمثال = تمثال.كومبلير(ريجكس);
      //إنشاء عنصر المحاكي
      Matcher matcher = pattern.matcher(input);
      //تعيين منطقة النص المدخل
      matcher.region(0, 4);
      if(matcher.find()) {
         System.out.println("إيجاد");
      } else {
         System.out.println("لم يتم العثور على التطابق");
      }
      boolean bool = matcher.hasTransparentBounds();
      //التحويل إلى نطاق شفاف
      if(bool) {
         System.out.println("المحاكي الحالي يستخدم حدود شفافة");
      } else {
         System.out.println("المحاكي الحالي يستخدم حدود شفافة");
      }
   }
}

نتيجة الإخراج

ادخل 5 إلى 12 حروف:
textsample
لم يتم العثور على مطابقة
المُطابقة الحالية للمطابقة غير الشفافة الحد

مثال2

إيرادتمثال.أولبك.سكانر;
إيرادتمثال.أولبك.ريجكس.تمثال;
إيرادتمثال.أولبك.ريجكس.تمثال;
publicتمثال فئةتمثالترانزبرنتباندز {
   publicتمثال ستاتيكفولد(تمثال[]تمثال) {
      //يمكن للعبرة النمطية أن تقبل من 6 إلى 10 حرف
      Stringتمثال = "\\A(?=\\w{6,10}\\z)";
      نظام.أوبرينت("إدخل 5 إلى 12 حرف: ");
      Stringتمثال = جديدسكانر(نظام.إدخال).التالي();
      //يُنشأ نموذج نموذج
      مثالتمثال تمثال = تمثال.كومبلير(ريجكس);
      //إنشاء عنصر المحاكي
      Matcher matcher = pattern.matcher(input);
      //تعيين منطقة النص المدخل
      matcher.region(0, 4);
      matcher.useTransparentBounds(true);
      if(matcher.find()) {
         System.out.println("إيجاد");
      } else {
         System.out.println("لم يتم العثور على التطابق");
      }
      boolean bool = matcher.hasTransparentBounds();
      //التحويل إلى نطاق شفاف
      if(bool) {
         System.out.println("المحاكي الحالي يستخدم حدود شفافة");
      } else {
         System.out.println("المحاكي الحالي يستخدم حدود شفافة");
      }
   }
}

نتيجة الإخراج

ادخل 5 إلى 12 حروف:
textsample
إيجاد
المحاكي الحالي يستخدم حدود شفافة
أفضل ما قد يعجبك