Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wyr. regularne
laq
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 19.09.2005

Ostrzeżenie: (10%)
X----


jak zapisac w wyrazeniu regularnym np. " wszystkie znaki poza "b" "?

pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
ghostrider
post
Post #2





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 30.09.2005
Skąd: k-rk

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $reg = "/(([^b]*))/";
  3. ?>


ale niewiem czy to to o co chodzi,
Go to the top of the page
+Quote Post
laq
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 19.09.2005

Ostrzeżenie: (10%)
X----


Kod
$test="b";
if(preg_match(jesli_test_to_znak_inny_niz_b, $test)) echo"ok"; else echo"nie ok";

wiec Twoj kod nie dziala. chodzi mi dokladnie o takie cos, wiem ze mozna to zrobic odwrotnoscia (jesli_test_to_b).
Go to the top of the page
+Quote Post
marast78
post
Post #4





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 30.11.2004

Ostrzeżenie: (0%)
-----


wystarczy tak:
pod pojęciem wszystki znaki rozumiem, że chodzi ci o litery tylko??
  1. <?php
  2.  
  3. if(ereg("[a-zA-Z]",$ciag) && !ereg("[bB]",$ciag))  $flag=true;
  4. else $flag=false;
  5.  
  6. ?>


lub

  1. <?php
  2.  
  3. if(eregi("[acdefghijklmnoprstvuwxyz]",$ciag))  $flag=true;
  4. else $flag=false;
  5.  
  6. ?>


gdy chodzi o wszystkie znaki jakie można uzyskac z klawiatury to

  1. <?php
  2.  
  3. if(!ereg("[bB]",$ciag))  $flag=true;
  4. else $flag=false;
  5.  
  6. ?>




gdy $flag=true to nie ma b, można kombinowac na wiele sposobów, chciałeś z ereg wiec opisałem z ereg (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

można też użyć strstr() -> chyba nawet szybciej działa

Ten post edytował marast78 31.10.2005, 14:02:28
Go to the top of the page
+Quote Post
laq
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 19.09.2005

Ostrzeżenie: (10%)
X----


chodzi mi o wszystkie możliwe znaki i tak jak pisalem - nie o odwrotnosc.

jezeli ktos dalej nie rozumie, to chodzi o cos takiego: pseudokod:

.-b (wszystkie znaki minus "b")
rozumiem, ze nie ma takiego sposobu?
Go to the top of the page
+Quote Post
ghostrider
post
Post #6





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 30.09.2005
Skąd: k-rk

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $reg = "/([^b])/";
  3.  
  4. $test = "b";
  5. $test2 = "c";
  6.  
  7. if( preg_match($reg, $test, $match1) ) echo"$test is ok<br />"; else echo "$test is nie ok<br />";
  8. if( preg_match($reg, $test2, $match2) ) echo"$test2 is ok<br />"; else echo "$test2 is nie ok<br />";
  9. ?>

tak zadziala na jednej literze, ale cos mi sie nie wydaje ze to dokladnie to czego szukasz, bo nie zadziala na wiecej niz jedej literze.

Cytat
.-b (wszystkie znaki minus "b")

to właśnie [^b]

moze napiszesz dokladnie jaki masz problem, tak latwiej szuka sie rozwiazania.

wykombionowalem cos takiego jesze:

  1. <?php
  2. $reg = "/^((?<!b)([^b]*?)(?!b))$/im";
  3.  
  4. $test = "string with b and some chars";
  5. $test2 = "string with no * and some chars";
  6.  
  7. if( preg_match($reg, $test, $match1) ) echo"$test is ok<br />"; else echo "$test is nie ok<br />";
  8. if( preg_match($reg, $test2, $match2) ) echo"$test2 is ok<br />"; else echo "$test2 is nie ok<br />";
  9. ?>


to zdaje sie spelniac twoje warunki, ale to dziwne rozwiazanie ...

Ten post edytował ghostrider 31.10.2005, 17:34:32
Go to the top of the page
+Quote Post
lukir
post
Post #7





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 6.08.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Myślę, że strstr będzie lepsze (szybsze) (jeżeli dobrze oczywiście rozumiem temat... (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) )
  1. <?php
  2.  if(!strstr($ciag, "b")) {
  3.  //ok - nie znaleziono znaku "b".
  4.  } else {
  5.  //niestety znak "b" wystąpił w ciągu.
  6.  }
  7. ?>
Go to the top of the page
+Quote Post
marast78
post
Post #8





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 30.11.2004

Ostrzeżenie: (0%)
-----


przeczytaj do końca to co napisałem (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)

  1. <?php
  2.  
  3. if(!ereg("[bB]",$ciag)) $flag=true;
  4. else $flag=false;
  5.  
  6.  
  7. ?>


a znak ^ również moze być, bo przecież najprostszym sposobem jest zanegowanie prawdy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) czyli jeżeli nie znajdzie b to ok
Go to the top of the page
+Quote Post
lukir
post
Post #9





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 6.08.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Nie, tu nie ma wątpliwości, że najlepsze jest Twoje zastosowanie, ale założyciel tematu nie do końca chyba wie o co mu chodzi, bo gdy podajemy różne, dobre rozwiązania tego "problemu" on nadal utrzymuje, że to jego problemu nie rozwiązuje...

Po prostu dorzuciłem kolejną opcję, żeby założyciel miał większy wybór metod (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) .
Go to the top of the page
+Quote Post
ghostrider
post
Post #10





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 30.09.2005
Skąd: k-rk

Ostrzeżenie: (0%)
-----


dla zaineresowych :

http://weitz.de/regex-coach/

ciekawy programik do edycji wyrazen regularnych
Go to the top of the page
+Quote Post
lukir
post
Post #11





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 6.08.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


@laq:
To na pewno się przyda, ale nadal nie wiemy czy nasze porady Ci się przydały...
I nadal nie wiemy, czy ten problem nie jest przypadkiem bardziej skomplikowany.
Go to the top of the page
+Quote Post
laq
post
Post #12





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 19.09.2005

Ostrzeżenie: (10%)
X----


odpowiedz na moje pytanie to "[^b]", podal ja juz w pierwszej odpowiedzi ghostrider - serdeczne dzieki. nie wiem czemu, gdy sprawdzalem to za 1. razem to nie zadzialalo... no a lukirowi i marastowi78 zycze lepszego czytania ze zrozumieniem (a sobie lepszego sprawdzania skryptow) (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . pozdrawiam
Go to the top of the page
+Quote Post
marast78
post
Post #13





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 30.11.2004

Ostrzeżenie: (0%)
-----


hehe spoko ja zrozumiałem dobrze tylko ty ciagle nie rozumiesz co napisałem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 23:50