Kung kailangan mong maghanap ng salita o substring, ang isang magandang solusyon ay ang paggamit ng control operator mula sa
regular na expression toolkit . Ito ay kailangang-kailangan kapag kailangan mong makahanap ng isang bagay na sumusunod sa ibang bagay.
Simpleng halimbawa
String str = "программируем"; Pattern p = Pattern.compile(".*программ(?=ируем).*"); Matcher m = p.matcher(str); if(m.matches()){ System.out.println("Нашел!"); }else{ System.out.println("Не нашел!"); }
1. Maghanap mula sa harap
Sa halimbawa sa itaas, kung kailangan mong hanapin ang "programming", ngunit hindi mo kailangang maghanap para sa "programming", dapat mong gamitin ang sumusunod na pattern:
.*программ(?=ируем).*
?= – maghanap sa harap para sa pagkakaroon ng isang salita/bahagi ng isang salita; ?! – hanapin mula sa harapan ang kawalan ng salita/bahagi ng salita.
2. Maghanap mula sa likod
Ang paghahanap mula sa likod ay gumagana sa katulad na paraan. Kailangan mong gumamit ng ?<= para maghanap ng salita/bahagi ng salita sa likod nito at ? .*(?<=programs)we.* Ang salitang "program" ay tumutugma sa pattern na ito, ngunit ang salitang "polish" ay hindi.
GO TO FULL VERSION