Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Wyrażenia regularne
Forum PHP.pl > Forum > Przedszkole
Joachim Peters
Zaczynam swoją zabawe z wyrazeniami, ale narazie idzie marnie, próbuje zrobić funkcje która oczyszcza wszystko co jest między "[", "]".
Narazie zrobiłem coś takiego, ale nic nie działa:
  1. <?php
  2. $message = ereg_replace("[^[[:alnum:]]$]", "", $message);
  3. $message = ereg_replace("[/^[[:alnum:]]$]", "", $message);
  4. ?>

ma to działać tak w ciąg znaków jest np. taki:
[tekst]test[/tekst] i ma to przerobić do tego "test", bez nawiasów kwadratowych i ukośnika.
misieq
  1. <?php
  2. $tekst = preg_replace("/[.+?]/", '', $tekst);
  3. ?>


Powinno działać
venomz
@misieq: przetestowales to? cos mi sie nie widzi zeby to moglo zadzialac dry.gif

wzorzec powinien wygladac tak:

Cytat
\[([[:alnum:]/]+)\]


i rozbijajac to na czesci pierwsze:
\[ - ciag znakow zaczyna sie od znaku "["

([[:alnum:]/]+) - dowolna ilosc liter i znakow ukosnika - "/"

\] - na koniec znak "]"

edit:

i jeszcze wskazowka nie dawaj na poczatku znaczka "^" bo wtedy nie bedzie dzialal dla ciagow typu:

tekst [znacznik] tekst [/znacznik]

(chyba ze akurat ma tak dzialac)
misieq
Hmm... ja sądziłem że to ma wyciąć po prostu z jakiegoś tekstu wszystko w stylu [cośtam] lub [/cośtam] i w takim przypadku działa mój regexp.

EDIT: No tak, coś mi nie chce forum wyśietlać wszystkich ukośników smile.gif W takim razie znak po znaku:
/ \ [ . + ? \ ] /
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.