Zdar Michale, negace jde udělat pomocí negativního lookaheadu - konstrukce (?!...), což je řetězec nulové délky, který se matchuje právě tehdy, když text za ním neodpovídá příslušnému regulárnímu výrazu.
Přibližně takto (píšu naslepo). Pattern p = Pattern.compile("(?m)^(?!X=).*$") for (Matcher m = p.matcher(soubor); m.find();) { System.out.println(m.start() + " " + m.end()); } kde X je tvůj regulární výraz pro klíč property. Předpokládám, že máš celý soubor ve Stringu, proto to (?m). Tomáš ================================================ ...with Ultimate flying is so easy... http://www.frisbee.cz http://www.peaceegg.net ================================================ ______________________________________________________________ > Od: michal.niko...@elanor.cz > Komu: konference@java.cz > Datum: 30.07.2010 09:06 > Předmět: Regular expression - negace > >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. > >