Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Różne od, negowanie wyrażenia regularnego
tosiek
post
Post #1





Grupa: Zarejestrowani
Postów: 142
Pomógł: 0
Dołączył: 7.07.2008

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


Główkuję od dłuższego czasu jak negować wyrażenie regularne (nie chodzi mi o negowanie funkcji wykonującej to wyrażenie). Ma sprawdzać czy rozszerzenie pliku jest różne od.

Doszedłem do takiego etapu:
Kod
\.(?<!png|jpg|jpeg|gif|bmp|js|css)$

No ale nie działa, mi się kończą pomysły (IMG:style_emoticons/default/smile.gif) Byłbym wdzięczny za pomoc.

Uff rozwiązałem, bardzo, bardzo rzadkie jest to zagadnienie i najczęściej kończy się: lookbehind assertion is not fixed length at offset

Rozwiązanie :
Kod
(?<!\.png|\.jpg|\.jpeg|\.gif|\.bmp|\.js|\.css)$



Jak ktoś ma pomysł jak oddzielić kropkę to byłbym wdzięczny bo próby tego typu:
Kod
(?<!\.(png|jpg|jpeg|gif|bmp|js|css))$

kończą się:
Cytat
preg_match_all() [<a href='function.preg-match-all'>function.preg-match-all</a>]: Compilation failed: lookbehind assertion is not fixed length at offset 37


Ten post edytował tosiek 13.04.2011, 21:07:00
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tosiek
post
Post #2





Grupa: Zarejestrowani
Postów: 142
Pomógł: 0
Dołączył: 7.07.2008

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


W tym wyżej nie działa case insetitive (nie mogę użyć modyfikatora), rozwiązanie (działa super, ale trzeba dopisywać kropkę):

Kod
(?i:(?<!\.png|\.jpg|\.jpeg|\.gif|\.bmp|\.js|\.css))$


Ktoś ma pomysł na kropkę i połączanie insetitive z Negative Lookbehind?

Ten post edytował tosiek 13.04.2011, 21:05:14
Go to the top of the page
+Quote Post
pmir13
post
Post #3





Grupa: Zarejestrowani
Postów: 282
Pomógł: 89
Dołączył: 12.04.2011

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


Cytat(tosiek @ 13.04.2011, 22:03:11 ) *
W tym wyżej nie działa case insetitive (nie mogę użyć modyfikatora), rozwiązanie (działa super, ale trzeba dopisywać kropkę):
Ktoś ma pomysł na kropkę i połączanie insetitive z Negative Lookbehind?

Może tak?
Kod
^[\.][^\.]*(?i:(?<!\.png|\.jpg|\.jpeg|\.gif|\.bmp|\.js|\.css))$
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: 26.09.2025 - 06:27