Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Budowa złożonego wyrażenia regularnego w RegExp
Forum PHP.pl > Forum > PHP
Bakus
W jaki sposób zbudować jedno wyrażenie regularne ("RegExp"), które zwracało by TRUE przy zadaniu wartości (każdej z osobna):
*.idn.myftp.org
*.krzysiaczek.no-ip.com
192.168.0.1
127.0.0.1
localhost
serwer

* to dowolny ciąg znaków...
Jabol
php pro => php

użyj operatora or ( w regexach to chyba był | ).
bamboos
witam!
[php:1:1d7b020337]<?php
if(preg_match('/(.+.idn.myftp.org|.+.krzysiaczek.no-ip.com|192.168.0.1)/', $text, $found)){
echo 'to pasuje';
print_r($found);
} else {
echo 'a to nie';
}
?>[/php:1:1d7b020337]
To jest dla tych pierwszych 3 możliwości. Myślę, że resztę będziesz potrafił sobie dopisać smile.gif
Bakus
Dzięki bamboos, ale dla czego nie działa dla 'idn.myftp.org'...
gwiazdka powinna zastępować także pusty ciąg...

Jednakże wielkie dzięki

Kod
'/(.+idn.myftp.org|.+krzysiaczek.no-ip.com|192.168.0.1)/'

Powyższe nie przyjmuje idn.myftp.org jako prawidłowej wartości, ale www.idn.myftp.org już jest jego zdaniem OK...
Jak zrobić, by to przed nazwą było opcjonalne??

Cytat
Gwoli wyjaśnienia poprawiam wartości:
*idn.myftp.org
*krzysiaczek.no-ip.com  
* - opcjonalny - dowolny ciąg znaków
adwol
Cytat
Jak zrobić, by to przed nazwą było opcjonalne??

Zamień .+ na .*.
Bakus
Dzięki wszystkim za odpowiedź...
Po wprowadzeniu wszystkich opisanych przez Was zmian wszystko zaczęło śmigać jak nic...

Jeszcze raz dzięki... tongue.gif

P.S. Miło, że można na Was liczyć... To wyjątkowo pocieszające w naszej smutnej żeczywistości...
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.