Po delsim premysleni to vyresim asi pres dva regularni vyrazy: private static Pattern patternRow = Pattern.compile("^.*$", Pattern. MULTILINE); private static Pattern patternCheckRow = Pattern.compile( "^[a-zA-Z][a-zA-Z0-9\\.\\_\\-]*\\s*=.*$");
public static void main(String[] args) { StringBuilder sb = new StringBuilder(); sb.append("organizationlist.view.caption = %organization").append( "\n"); sb.append("organizationlist.provider.caption = %organizationlist.view.caption").append("\n"); sb.append("payrollentityincollection.view.caption = Zařazení mzdové entity do kolekce").append("\n"); sb.append("payrollentitycollection.view.caption = Kolekce mzdových entit").append("\n"); sb.append("payrollentitysubgroup.view.caption = Podskupiny mzdových entit").append("\n"); Matcher m = patternRow.matcher(sb.toString()); while (m.find()) { String row = m.group(); if (!patternCheckRow.matcher(row).matches()) { System.out.println("Chyba: " + row + " start = " + m.start() + " end = " + m.end()); } } } > Mam soubor formatu: > .... > organizationlist.view.caption = %organization > organizationlist.provider.caption = %organizationlist.view.caption > payrollentityincollection.view.caption = Zařazení mzdové entity do kolekce > payrollentitycollection.view.caption Kolekce mzdových entit > payrollentitysubgroup.view.caption = Podskupiny mzdových entit > ... > > jde tedy priblizne o format Properties souboru (klic = hodnota), pricemz > klic ma povolene znaky [a-z][a-z0-9\.\-\_]* pak musi nasledovat rovnitko a > pak libovolne znaky az do konce radku (vcetne rovnitka) > V uvedenem vyseku je videt, ze radek 4 porusuje predepsane pravidlo (chybi > rovnitko). > > Otazka zni: lze regularnim vyrazem dohledat radky ktere nevyhovuji > predpisu ^\s*[a-z][a-z0-9\.\-\_]*\s*=.*$ tedy v podstate znegovat > regularni vyraz. U grepu je to tusim "grep -v expression" > > Ve vysledku bych potreboval start index a end index znaku radku (index > znaku v ramci souboru), ktery nevyhovuje predpisu.