/ / Ako rozdeliť reťazec na "bodku", ak a len ak predchádzajúci a nasledujúci znak nie je bodka - java, regex

Ako rozdeliť reťazec na "bodku", ak a len ak predchádzajúci a nasledujúci znak nie je bodka - java, regex

Vzhľadom na nasledujúci reťazec:

"foo.bar.baz"

to môže byť rozdelená na "dot" ľahko dosť pomocou Java String rozdelenie:

split("foo.bar.baz", ".")

Ak však chcem zachovať bodku, ak ihneď nasleduje ďalšia tečka, aký je výraz regex:

"foo.bar.baz..raz..daz.faz" → "foo" "bar" "baz..raz..daz" "faz"

odpovede:

7 pre odpoveď č. 1

Tento regex by fungoval:

s.split("(?<!\.)\.(?!\.)");

Myšlienkou je použiť negatívny lookahead len na rozdelenie "." ktoré nesleduje alebo predchádza iný bod.