Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][regexp] Zdanie z określonymi wyrazami
Greg0
post 26.09.2012, 16:23:32
Post #1





Grupa: Zarejestrowani
Postów: 264
Pomógł: 54
Dołączył: 31.08.2007
Skąd: Tychy

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


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

Ten post edytował Greg0 26.09.2012, 16:31:56
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
abort
post 26.09.2012, 18:57:24
Post #2





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


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.
Go to the top of the page
+Quote Post
Greg0
post 26.09.2012, 19:16:04
Post #3





Grupa: Zarejestrowani
Postów: 264
Pomógł: 54
Dołączył: 31.08.2007
Skąd: Tychy

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


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
Go to the top of the page
+Quote Post
abort
post 26.09.2012, 19:58:39
Post #4





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


Na kolanie (chyba załapiesz ideę):
Kod
/^((ala|ma|kota),*){1,3}$/
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:52