Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z wyrazeniami regularnymi
Forum PHP.pl > Forum > PHP
problemik_mam
Witam
Moze ktos pomoze, jak wyeliminowac ze zmiennej znaki typu "!@#>>{}[]"
Kombinowalem, ale nie bardzo obczajam o co chodzi w wyrazeniach regularnych, moje "cos":

$zmienna = ereg_replace('[[:punct:]]', '<>!@#$%^&*().,:[{} ', $zmienna);
z gory wielkie dzieki
Seth
Mozna tak:
[php:1:48d2dd24ac]$text = preg_replace( "/(!|@|#|>|{|}|[|])/", '', $text );[/php:1:48d2dd24ac]

lub bez regularnych:
[php:1:48d2dd24ac]$text = preg_replace ( array( '!', '@', '#', '>', '{', '}', '[', ']' ), '', $text);[/php:1:48d2dd24ac]
problemik_mam
Cytat
Mozna tak:
[php:1:b5491e2122]$text = preg_replace( "/(!|@|#|>|{|}|[|])/", '', $text );[/php:1:b5491e2122]


moglbys mi to wytlumaczyc smile.gif ? bo sie nie moge polapac smile.gif
Seth
Cytat
/(!|@|#|>|{|}|[|])/

/( - rozpoczyna wyrazenie
Znaki, ktore maja byc zamienione sa odzdzielone pipeami (|).
{, }, [ i ] - maja odpowiednie funkcje w wyrazeniach, wiec trzeb je podac w formie, ktora bedzie wybierala wlasnie te znaki, a nie ich odpowiednie funkcje. Czyli dodajemy przed tymi znakami
)/ - konczy wyrazenie
problemik_mam
jak do tego wyrazenia wiec dodac slashe ? tak zeby je tez usuwal ?
Seth
\
adwol
Cytat
jak do tego wyrazenia wiec dodac slashe ? tak zeby je tez usuwal ?

[php:1:96ef9b93be]<?php
$tekst = preg_replace('|[!@#>/{}[]]|', '', $tekst);
?>[/php:1:96ef9b93be]

Seth: Po co uzywać alternatywy lub tablicy gdy są znacznie prostsze klasy znaków.
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.