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

طريقة Matcher useTransparentBounds () مع مثال في Java

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

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

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

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

مثال 1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class useTransparentBoundsExample {
   public static void main(String[] args) {}}
      // يمكن للعبارات النمطية أن تأخذ من 6 إلى 10 حروف
      String regex = "\\A(?=\\w{6,10}\\z)";
      System.out.println("ادخل 5 إلى 12 حرفًا:");
      String input = new Scanner(System.in).next();
      // إنشاء كائن نموذج
      Pattern pattern = Pattern.compile(regex);
      // إنشاء كائن Matcher
      Matcher matcher = pattern.matcher(input);
      // إعداد النطاق على النص المدخل
      matcher.region(0, 4);
      // الانتقال إلى نطاق شفاف
      if(matcher.find()) {
         System.out.println("تم العثور على التطابق");
      } else {
         System.out.println("لم يتم العثور على التطابق");
      }
   }
}

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

ادخل 5 إلى 12 حروفًا:
sampleText
لم يتم العثور على التطابق

هذا الفئةطريقةuseTransparentBounds()يستقبل هذا الطريقة قيمة منطقية، إذا تم تمرير true إلى هذه الطريقة، فإن الماكر الحالي سيستخدم نطاق شفاف، وإذا تم تمرير false إلى هذه الطريقة، فإنه سيستخدم نطاق غير شفاف.

مثال 2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
   public static void main(String[] args) {}}
      // يمكن للعبارات النمطية أن تأخذ من 6 إلى 10 حروف
      String regex = "\\A(?=\\w{6,10}\\z)";
      System.out.println("ادخل 5 إلى 12 حرفًا:");
      String input = new Scanner(System.in).next();
      // إنشاء كائن نموذج
      Pattern pattern = Pattern.compile(regex);
      // إنشاء كائن Matcher
      Matcher matcher = pattern.matcher(input);
      // إعداد النطاق على النص المدخل
      matcher.region(0, 4);
      // الانتقال إلى نطاق شفاف
      matcher = matcher.useTransparentBounds(true);
      if(matcher.find()) {
         System.out.println("تم العثور على التطابق");
      } else {
         System.out.println("لم يتم العثور على التطابق");
      }
   }
}

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

ادخل 5 إلى 12 حروفًا:
textsample
تم العثور على التطابق
أنت قد تعجبك