إذا كنت بحاجة إلى العثور على كلمة أو سلسلة فرعية، فالحل الجيد هو استخدام عامل التحكم من مجموعة أدوات
التعبير العادي . لا غنى عنه عندما تحتاج إلى العثور على شيء يتبع شيئًا آخر.
مثال بسيط
String str = "программируем"; Pattern p = Pattern.compile(".*программ(?=ируем).*"); Matcher m = p.matcher(str); if(m.matches()){ System.out.println("Нашел!"); }else{ System.out.println("Не нашел!"); }
1. البحث من الأمام
في المثال أعلاه، إذا كنت بحاجة إلى البحث عن "برمجة"، لكن لا تحتاج إلى البحث عن "برمجة"، فيجب عليك استخدام النمط التالي:
.*программ(?=ируем).*
?= – ابحث في المقدمة عن وجود كلمة/جزء من الكلمة؛ ؟! – البحث من الأمام عن عدم وجود كلمة/جزء من الكلمة.
2. البحث من الخلف
البحث من الخلف يعمل بطريقة مماثلة. أنت بحاجة إلى استخدام ?<= للبحث عن كلمة/جزء من الكلمة خلفها و? .*(?<=programs)we.* كلمة "برنامج" تتطابق مع هذا النمط، لكن كلمة "تلميع" لا تتطابق معه.
GO TO FULL VERSION