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
Zyx
post
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


  1. !preg_match('/(zmiennej|geometrii)/', $text)


Z teorii automatów: jeśli automat skończony (tj. wyrażenie regularne) akceptuje język X, to aby akceptować dopełnienie języka X, wystarczy zamienić miejscami stany akceptujące i odrzucające (czyli krótko mówiąc: zanegować).

Ponadto poczytaj sobie o znaczeniu symbolu ^ w wyrażeniach regularnych Perla, gdyż nie działa on tak, jak myślisz. Jako negacja funkcjonuje wyłącznie w klasie znaków, tj. w nawiasach kwadratowych, a wszędzie indziej reprezentuje początek badanego słowa.
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 - 04:37