import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?!\\b(sapkowski|wiedźmin|tomek|bagiński)\\b)(([\\u0100-\\u017F])|(acz|acze|acza|aczy|aczowi|aczom|aczem|aczami|aczu|aczach|adam|adamy|adasz|adacie|ada|adali|adaliby|adajmy|adaj|adajcie|adany|adana|adane|adani|adano|adanie|ak|akowi|akom|akiem|akami|aku|akach|aki|alnia|alnie|alni|alniom|alniami|alniach|alnio|anin|anie|anina|aninowi|anom|aninem|anami|aninie|anach|anka|anki|anek|ankom|ankami|ankach|anko|arka|arki|arkowu|arkow|arkoma|arkam|arku|arkami|arkach|arek|arkom|arko|arnia|arnie|arni|arniom|arniami|arniach|arnio|arz|arze|arza|arzy|arzowi|arzom|arzem|arzami|arzu|arzach|aci|atego|atemu|atej|atych|atym|atymi|atych|awy|awe|awa|awi|awego|awemu|awej|awych|awym|awymi|cami|cach|cja|cje|cji|cyj|cjom|cje|cjami|cjach|cjo|cka|cki|ckie|ccy|ckiego|ckiemu|ckiej|ckich|ckim|ckimi|cku|cz|czyk|czycy|czyki|czyka|czykowi|czykom|czyka|czykiem|czykami|czyku|czykach|czyni|czynie|czyniom|czyniami|czyniach|czyzna|czyzny|czyzn|czyznom|czyznami|czyznach|czyzno|dziej|dzieje|dzieja|dziei|dziejowi|dziejom|dziejem|dziejami|dzieju|dziejach|ec|ek|ki|ka|kowi|kom|kiem|kami|ku|kach|elnia|elnie|elni|elniom|elniami|elniach|elnio|ica|icom|icami|icach|iczny|iczne|iczna|iczni|icznego|icznej|icznych|icznemu|icznym|icznymi|iec|ika|ikowi|ikom|ikiem|ikami|iku|ikach|iki|inie|inom|inami|inach|isko|iska|isek|isku|iskom|iskiem|iskami|iskach|izm|izmy|izmu|izmowi|izmom|izmem|izmami|izmie|izmach|jad|jady|jada|jadowi|jadom|jadem|jadami|jadzie|jadach|kolwiek|logie|logii|logiom|logiami|logiach|mierz|mierze|mierza|mierzy|mierzowi|mierzom|mierzem|mierzami|mierzu|mierzach|nica|nicy|nicom|nicami|nicach|nico|nie|nia|niu|niom|niem|niami|niach|nika|nikowi|nikom|nikiem|nikami|niku|nikach|niki|ninowi|ninem|ninie|nach|nego|nemu|nej|nych|nymi|odporny|odporne|odporna|odporni|odpornego|odpornemu|odpornej|odpornych|odpornym|odpornymi|olowi|olami|olach|ocie|otami|ocie|otach|owiec|owcy|owca|owcowi|owcom|owcem|owcami|owcu|owcach|owcze|owce|owy|owe|owa|owi|owego|owemu|owej|owych|owym|owymi|ów|owowi|owie|ówka|ówki|ówek|ówce|ówkom|ówkami|ówkach|ówko|pedie|pedii|pedyj|pediom|pediami|pediach|pedio|podobny|podobne|podobna|podobni|podobnego|podobnemu|podobnej|podobnych|podobnym|podobnymi|ska|skie|scy|skiego|skiej|skiemu|skich|skich|skimi|sku|stwo|stwa|stw|stwu|stwom|stwem|stwami|stwie|stwach|szczyzna|szczyzny|szczyzn|szczyznom|szczyznami|szczyznach|szczyzno|szy|sze|sza|szego|szemu|szej|szych|szym|szymi|unek|wód|wody|wodu|wodów|wodowi|wodom|wodem|wodami|wodzie|wodach|yca|yce|ycy|ycom|ycami|ycach|yco|yczny|yczne|yczna|yczni|ycznego|ycznemu|ycznej|ycznych|ycznym|ycznymi|ysko|yska|ysek|ysku|yskom|yskiem|yskami|ysku|yskach|ujemy|ujesz|ujecie|uje|ywali|ywaliby|ujmy|uj|ujcie|ywany|ywana|ywane|ywani|ywano|ywanie|zka|zki|zkie|zcy|zkiego|zkiemu|zkiej|zkich|zkim|zkich|zkimi|zku|znawstwo|znawstwa|znawstew|znawstwu|znawstwom|znawstwem|znawstwami|znawstwie|znawstwach)\\b)+";
final String string = "sapkowski annie tomek polska wiedźmin iedźmin";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html