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.
>
>

Odpovedet emailem