Kod
START bla bla bla END inneblabla inneblabla
Chcę zamienić wszystko między START a END na coś innego, włącznie ze START i END.
No to piszemy proste wyrażenie:
$text = 'START bla bla bla END inneblabla inneblabla';
W rezultacie otrzymamy:
Kod
#zamienione# inneblabla inneblabla
Proste.
Sprawa się komplikuje, gdy pomiędzy START i END włożym podSTART i pod END
Kod
START bla bla bla START blablaW END bla3 END inneblabla inneblabla
W wyniku naszego wyrażenia otrzymamy
Kod
#zamienione# bla3 END inneblabla inneblabla
A powinniśmy otrzymać to samo co w pierwszym przypadku.
No to powiecie: zamien .*? na .* i po sprawie. No nie do końca, bo jest jeszcze jeden przypadek, ze START i END pojawi nam się też rownożędnie do pierwszego, czyli np:
Kod
START bla bla bla START blablaW END bla3 END inneblabla START ccc xxx END inneblabla
Zrobie .* da nam
Kod
#zamienione# inneblabla
a mi chodzi, by uzyskac
Kod
#zamienione# inneblabla START ccc xxx END inneblabla
Podsumowując:
ma być zamienione tylko pierwsze główne START END, nawet jeśli ma w sobie inne START END, ale nie można już ruszych późniejszych START END
Idzie to zrobić wyrażeniem regularnym?