Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][regexp] Zdanie z określonymi wyrazami
Forum PHP.pl > Forum > PHP
Greg0
Witam staram się stworzyć wyrażenie regularne, które przepuszczałoby tylko zdanie składające się ze zdefiniowanych wyrazów bez względu czy wszystkie sa użyte i w jakiej kolejności.
Dla przykładu mam trzy wyrazy: ala, ma, kota.
I chcę aby walidowało (przykłady, każdy w nowej linii):
ala,ma,kota
kota,ma,ala
kota,ma
ala,kota
ala,ma
ma
kota
ala

Jednym słowem każda kombinacja z podanych wyrazów i zależy mi na tym aby to było wyrażenie regularne ponieważ do router'a to potrzebuję.

Z góry dziękuję za wszelkie wskazówki.

Na razie wymysliłem coś takiego
Kod
(ala|ma|kota),(ala|ma|kota),(ala|ma|kota)

Ale przy większej ilości wyrazów to się mega rozrośnie i dodatkowo reaguje tylko na trzy wyrazy
abort
Cytat(Greg0 @ 26.09.2012, 17:23:32 ) *
Kod
(ala|ma|kota),(ala|ma|kota),(ala|ma|kota)


Przemyśl jeszcze raz Twoje założenie i przemyśl jeszcze raz, co załapie się na ciąg znaków w nawiasie (nawiasem mówiąc, bezsensownie powtórzonym trzykrotnie).

P.S.
Abstrahując od tego, że ciąg znaków w nawiasie złapie także słowa "malec", "halabarda" czy "kotara" - bo zapomniałeś za nawiasem podać jakiegokolwiek separatora słowa.
Greg0
wyczarowałem coś takiego:
Kod
/^(ala|ma|kota){1,3}$/

i działa, nie wychwytuje kotara i innych przykładów zawierających te wyrazy w sobie. Teraz nie umiem poradzić sobie z przecinkiem pomiędzy wyrazami
abort
Na kolanie (chyba załapiesz ideę):
Kod
/^((ala|ma|kota),*){1,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.