/ / regex na párovanie, ak mu predchádza niečo iné - java, regex

regex pre zhodné niečo, ak nie je predchádza niečo iné - java, regex

Takže s regulárnym výrazom v jave chcem napísať regulárny výraz, ktorý bude zodpovedať iba vtedy, ak vzoru nebudú predchádzať určité znaky. Napríklad:

String s = "foobar barbar beachbar crowbar bar ";

Chcem sa vyrovnať, ak baru predchádza foo. Výstup by teda bol:

barbar
beachbar
crowbar
bar

Viem, že je to pravdepodobne veľmi jednoduchá otázka. Snažím sa naučiť regex, ale zatiaľ potrebujem niečo, aby som teraz pracoval.

odpovede:

145 pre odpoveď č. 1

Chcete použiť negative lookbehind ako toto:

w*(?<!foo)bar

Kde (?<!x) znamená „iba ak nemá pred týmto bodom„ x ““.

vidieť Regulárne výrazy - prehľad Pre viac informácií.

editovať: pridal w* na zachytenie znakov skôr (napr. „pláž“).