![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 590 Pomógł: 107 Dołączył: 25.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
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 |
|
|
![]()
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}$/
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 11:52 |