![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 711 Pomógł: 127 Dołączył: 5.07.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Witam, chciałbym stworzyć regułkę która ma za zadanie "akceptować" wszystkie linki http/ftp oprócz http://strona i ftp://strona
Obecnie mam kod:
(?) - co wstawić zamiast tego? Jak zanegować cały ciąg znaków a nie zakres? Wiem że mógłbym to rozdzielić na 2 preg_match ale musi być jakieś rozwiązanie w regexp ![]() |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 444 Pomógł: 79 Dołączył: 26.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
nie spotkalem sie z rozwiazaniem w czystym RegExp ale mozesz podac 3ci parametr w ktorym dostaniesz znalezione wartosci z nawiasow i je porownac str_cmp() lub czyms podobnym
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 561 Pomógł: 72 Dołączył: 15.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
A nie prościej byłoby po prostu sprawdzać czy url zawiera ciąg 'http://strona' i jeśli tak to go odrzucać ?
-------------------- Nawet świnka może wejść na drzewo kiedy jest chwalona :)
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 711 Pomógł: 127 Dołączył: 5.07.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
krowal, skrypt musi też sprawdzać poprawność linku
zrobiłem inaczej niż chciałem ale w sumie też takie rozwiązanie mnie zadowala:
Fajnie by było jednak gdyby można było negować ciąg znaków a nie zakres [^ciąg znaków]... |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 561 Pomógł: 72 Dołączył: 15.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
A to sorry, nie zrozumieliśmy się, owszem jest coś takiego co neguje ciąg a nie zakres
![]()
-------------------- Nawet świnka może wejść na drzewo kiedy jest chwalona :)
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 711 Pomógł: 127 Dołączył: 5.07.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
O to mi właśnie chodziło
![]() ![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 3 Dołączył: 7.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Przepraszam że odkopuję temat, ale jestem tym strasznie zainteresowany. Miałem kiedyś problem z negacją ciągu za pomocą wyrażeń regularnych i nie został on przeze mnie rozwiązany (zastosowałem wtedy jakąś durną drogę "naokoło"). Próbowałem znaleźć jakiekolwiek źródła dotyczące składni podanej przez krowala, ale nigdzie nie ma absolutnie nic na ten temat. Czy ktoś zna jakieś źródło w internecie które traktuje o takiej konstrukcji wyrażenia trochę szerzej?
Chodzi mi oczywiście o (?!ciąg). Tutaj jest przykład w jaki sposób ludzie próbują dokonać tego cuda za pomocą wyrażeń, a mi do dzisiaj nie chce się wierzyć że nie ma lepszej metody: http://wiki.tcl.tk/989 (sekcja "Negated string") Ten post edytował Mikz 2.07.2010, 22:06:36 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 43 Pomógł: 9 Dołączył: 8.08.2009 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 3 Dołączył: 7.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Bardzo dziękuję, niestety nie jestem w stanie kliknąć "Pomógł" bo to nie mój topic. Jednak wciąż: nie zadziała zgodnie z oczekiwaniem. Zapytam inaczej: Czy istnieje jakieś wyrażenie (poza oczywiście tą wymienioną przeze mnie w poprzednim poście), dzięki któremu preg_match() zwróci mi true dla KAŻDEGO ciągu który NIE ZAWIERA ciągu podanego przeze mnie? Jeśli tak, to czy look-ahead jest tutaj dobrym tropem? Ok, sam sobie odpowiedziałem, na podstawie artykułu podanego przeze mnie wcześniej. Mój błąd że przeczytałem go zbyt mało dokładnie. Dla potomności: {^(?!(.*ciag.*))} (ten wątek jest jednym z niewielu wyników w googlu dla "negacja ciągu" więc przyda się tutaj taka informacja) Ten post edytował Mikz 2.07.2010, 22:29:36 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 30.04.2025 - 11:28 |