skladania regexp

0

witam

jak powinna wygladac skladnia stringu dla funkcji eregi_replace()

jesli szukam takiego ciagu ktory zaczyna sie od "[ b ]" konczy "[ / b ]" i nie moze w nim wystapic ciag "[ b ]" (czyli ciag rozpoczynajacy) ???

bo glowilem sie i nie ma skutkow :/

stworzylem cos takiego:

[b]([^([b])])[/b] <=> <b>\1</b>

ale to nie dziala :(

ps. umiescilem spacje w ciagach ktore podalem na poczatku, bo forum by inaczej wyłapało to jako pogrubienie :]

0

Ja bym wstawił coś takiego.

$text = preg_replace("/\[b\]([^\\[]*)\[\/b\]/i","<b>\\1</b>",$text);
0

thx!!

btw: zna ktos moze jakis dobry tutorial zeby sie wlasnie nauczyc tych wyrazen regularnych perla do PHP?

0

Ja bym wstawił coś takiego.

$text = preg_replace("/\[b\]([^\\[]*)\[\/b\]/i","<b>\\1</b>",$text);

[b]asd[asda[/b]
i całe wyrażenie leży...
tak samo nie złapie zewnętrznych tagów:
[b]asd[b]as[/b]da[/b]

ogólnie to lepiej jest zamieniać [b] na coś i [/b] na coś innego - bez użycia regexp - to samo było z <quote> na 4p

//te LF - ładnie to tak autora podmieniać? hę? [diabel] - M
// te M, oczywiście że ładnie ;P - ŁF
//znów? masz ode mnie prezent... - M
// umrzyj - ŁF & BUM

0

/[b](.+?)[/b]/si

cos takiego dziala dla zagniezdzanych i <ort>w ogóle</ort> dziala :D

btw: dziala to tylko dla funkcji preg_replace... bo z podobna skladnia zgodna z eregi_replace() to sie sypie dla zgniezdzonych tagow.... dlaczego?

otoz eregi nie wiedziec czemu szuka pierwszego [b] i ostatniego [/b] w podanym ciagu a nie tak jak to robi perl [b] i nastepujacego po nim [/b]

dlatego tak kombinowałem przy tym, bo nie znalem wyrazen perla ;)

a nie chcialem takze zamieniac osobno [b] na cos i [/b] na cos innego z 2 powodow:

  1. tak jest wygodniej... i nie mozna wstawiac pustych znacznikow w sensie np. "[b][/b]costam[b][/b][b][/b] costam "

  2. gdy kolega wpisuje nast. ciag "[b] csotam [/bbb]"
    to jest on nie poprawny i tag [b] nie powinien zostac otwarty i tekst powinien byc zachowany oryginalny... a nie [b] przekstalcone, bo wtedy nie mialo by konca

1 użytkowników online, w tym zalogowanych: 0, gości: 1