Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyrażenia regularne - spacja
Forum PHP.pl > Forum > PHP
SN@JPER^
Witam,

nie mogę dojść, jak w wyrażeniu przypisać spację...

  1. <?php
  2. $var = 'Wszystkiego Najlepszego';
  3.  
  4. if(eregi('^[a-zA-Z]+/s+[a-zA-Z]$', $var)){
  5. echo 'good';
  6. }else{
  7. echo 'bad';
  8. }
  9. ?>


Oznajmiam, że się uczę dopiero wyrażeń, stąd moje pytanie. Pozdrawiam.
blooregard
Zamiast eregi, która jest przestarzała, używaj raczej funkcji z rodziny preg_...().
http://pl2.php.net/manual/pl/ref.pcre.php

Natomiast spacja w wyrażeniach regularnych reprezentowana jest przez sekwencję znaków \s ( a nie /s, jak u Ciebie).
SN@JPER^
/s czy \s i tak nie działa...

Powiadasz, że problem rozwiąże uzycie innej funkcji?
darko
Nie lepiej tak:

  1. $var = 'Wszystkiego Najlepszego';
  2. if(preg_match("/ /", $var) != 0) {
  3. echo "bad";
  4. }
  5. else {
  6. echo "good";
  7. }

?
blooregard
Cytat
Powiadasz, że problem rozwiąże uzycie innej funkcji?

Tak, preg_match() i pokrewnych.

Poza tym Twoje wyrażenie poprawnie powinno mieć postać:
  1. ^[a-zA-Z]+\s[a-zA-Z]+$

wtedy "Wszystkiego najlepszego" pasuje.
webdice
  1. if(preg_match('/^[a-zA-Z]+ [a-zA-Z]+$/', $var)){


\s - oznacza białe znaki (spacje, tabulatory itp).

  1. if(preg_match('/^[a-zA-Z]+\s[a-zA-Z]+$/', $var)){


Co do eregi, nie chodzi nawet o to że jest przestarzałe, ale głównie o to że w PHP6 już tej funkcji nie będzie.
SN@JPER^
preg_match('/^[a-zA-Z]+\s[a-zA-Z]+$/', $var);

Co każde słowo trzeba plusować? i nawet +$?
zegarek84
znak + oznacza jeden lub więcej znaków wcześniej zdefiniowanych - u Ciebie znaków [a-zA-Z] - a skoro słowo ma się z tych znaków składać i ma więcej niż jeden znak to musisz dodać + lub np {1,} - a czy to też mam tłumaczyć?? - akurat ten zapis w klamrze znaczy w zasadzie to samo co znak + czyli jeden i więcej znaków

a znak $ oznacza koniec wyrażenia regularnego...
celbarowicz
  1. if(eregi('^[a-zA-Z]+[ ][a-zA-Z]+$', $var)) itd
  2.  
  3.  
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.