Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [RegExp] Negacja słów
wookieb
post
Post #1





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Czy jest możliwe zanegowanie całych słów w wyrażeniu regularnym?
Chcę napisać wyrażenie regularne, które zaakceptuje wszystkie inne słowa poza np. foo, bar

Przykładowe wyniki "testu" wyrażenia

widok - ok
foo - nie ok
bar - nie ok
foobar - ok
mieso - ok
itd...

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No i właśnie o to mi chodzi, że negacja powinno negować wyrażenie w poniżej opisany sposób.
Przykładowo wyrażenie
  1. preg_match('/(^test|hehe)/', 'foo');

Powinno zwrócic prawdę. Dlaczego?
"Szukaj ciągu NIE test lub NIE hehe" a lol takimi słowami nie jest.
Może źle rozumiem negację ale wyjaśnię po co mi coś takiego.

Tworzę na swojego potrzeby klasę do menu gdzie dla każdego elementu wstawić ustawienie kiedy element jest aktywny (jaki moduł, kontroler, akcja) i zrealizowałem to w ten sposób że dane ustawienie jest częścią wyrażenia regularnego. Np
Kod
kontroler = user|photos

Dopasuje kontroler user i photos.
Natomiast teraz chciałbym dodać warunek, że element ma być aktywny dla wszystkich akcji POZA tymi, które ustalę np list|edit, dlatego zastanawiam się jak to zapisać w wyrażeniu regularnym.
Oczywiście ostatecznością w tym przypadku byłoby skorzystania z takiego wyrażenia "list|edit" i dodatkowo dodanie oddzielnej flagi zanegowania.
Wyglądałoby to tak
Kod
action=list|edit
action_negate=true


Ten post edytował wookieb 22.04.2010, 19:14:55
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 28.12.2025 - 07:51