Əgər söz və ya alt sətir tapmaq lazımdırsa, yaxşı həll yolu
adi ifadə alətlər dəstindəki idarəetmə operatorundan istifadə etməkdir . Başqa bir şeyin ardınca gələn bir şey tapmaq lazım olduqda əvəzolunmazdır.
Sadə misal
String str = "программируем"; Pattern p = Pattern.compile(".*программ(?=ируем).*"); Matcher m = p.matcher(str); if(m.matches()){ System.out.println("Нашел!"); }else{ System.out.println("Не нашел!"); }
1. Ön tərəfdən axtarın
Yuxarıdakı misalda “proqramlaşdırma”nı tapmaq lazımdırsa, lakin “proqramlaşdırma” üçün axtarış aparmağa ehtiyac yoxdursa, aşağıdakı nümunədən istifadə etməlisiniz:
.*программ(?=ируем).*
?= – sözün/sözün bir hissəsinin mövcudluğunu axtarın; ?! – sözün/sözün bir hissəsinin yoxluğunu ön tərəfdən axtarın.
2. Arxadan axtarın
Arxadan axtarış oxşar şəkildə işləyir. Arxasında sözü/sözün bir hissəsini axtarmaq üçün ?<= istifadə etməlisiniz və ? .*(?<=proqramlar)biz.* “Proqram” sözü bu nümunəyə uyğun gəlir, lakin “polish” sözü uyğun gəlmir.
GO TO FULL VERSION