Nie mogę poradzić sobie z wyr. regularnym - hipertekst

0

Cześć, kombinuję już którąś godzinę, ale mi nie idzie.
Próbuję stworzyć takie wyrażenie, które przykładowo przy łańcuchu:

http://www.wp.pl - da true
http://www.wp - da false
http://wp.pl - da true
http://www.wp. - da false
(tak samo z https://)

No chodzi o poprawny link(pamiętając o tym, że dalej mogą być slashe, a po slashu zaraz może być tylda lub nie)

Jak dla mnie to to co skonstruowałem powinno działać:
http[s]?:/(((/www.){1})|(/))(\w+.\w+){1,}(/[~]?\w+)?

Ale nie działa.

Jakieś pomysły?

Ja to wyrażenie powyżej widzę tak:

Na początku musi być: http:/ lub https:/
Potem /www. lub /
Potem musi być jakiś wyraz, po nim kropka, potem jeszcze jeden wyraz. Ta kombinacja(wyraz - kropka - wyraz) musi wystąpić minimum jeden raz.
Potem może, ale nie musi wystąpić slash, po slashu może być tylda, dalej dowolny wyraz
Ta kombinacja(slash - tylda lub brak tyldy - wyraz) może wystąpić wiele razy, ale nie musi w ogóle.

Widać, komputer widzi to nieco inaczej, niż ja ;)
No i tam jeszcze trzeba dodać, że jak będzie slash, wyraz i slash, to po tym slashu może być wyraz - kropka - wyraz(np: www.wp.pl/uzytek/plik.html)

Nie mam pojęcia, jak to dalej pociągnąć

0

http://www.wp - da false
W/g Twojego podejścia to jest prawidłowy url. No i być może tak jest, bo zakładając istnienie TLD .wp rejestracja w niej domeny o nazwie www.wp nie powinna stanowić problemu.

0

poza tym slasha może nie być a jeśli jest to po slashu może być dowolny ciąg znaków

0

Zakładam, że link jest poprawny, gdy:

jeśli nie ma http(s):// to musi być na początku www.
Jeśli jest http(s):// to nie musi być na początku www, ale może.
Jeśli www. jest oznacza to, że musi być jeszcze minimum jedna kropka, która oddziela 2 ciągi.

Czyli:

http://wp.pl - poprawny
http://www.wp - niepoprawny, bo nie ma drugiej kropki
http://www.wp.pl - poprawny

vgcg napisał(a)

poza tym slasha może nie być a jeśli jest to po slashu może być dowolny ciąg znaków

No tak. Ale ktoś umie to pociągnąć?

0

a co powiesz o "www.info"? Albo lepszy przykład: "http://localhost"

* albo http:*www.tk - Cold ;)

0

co można skrócić do:

http://tk.

i to jest poprawny link i to forum nawet zamienia go na link bo pasuje do wyrażenia regularnego użytego w źródłach tego forum które zresztą możesz sobie podejrzeć

0

Co do localhosta to nie biorę go pod uwagę z pewnych względów ;)

Ale www.tk mnie całkowicie zaskoczyło i zmienilło moją filozofię życiową.

Ale http://tk. oczywiście nie działa ;)
// na Firefoksie działa - Cold

W każdym razie widzę po tych przykładach, że miałem nieco błędne pojęcie.

0

a .info nie? czuję się zazdrosny ;)

"tk." mi na firefoxie (2.0.0.7 portable) nie działa

// FF 2.0.0.6 i 2.0.0.7 - SOA#1 - Cold

0

dziwne, ale trzeba przepisać w pasek adresu albo otworzyć w nowej zakładce (MMB), po kliknięciu normalnym nie działa

po kliknięciu normalnym szuka chyba "http://tk../" więc w linku trzeba by podać samo http://tk/ bez kropki na końcu może

// nie bardzo; FF to łyka, zaś Opera i zapewne IE - nie. - Cold

0

Wejdz sobie np na http://wikipedia . wejdzie. albo wpisz samo wikipedia itp. Firefox wyszukuje w google tego wyrazu i pobiera tam gdzie jest jego nazwa w w tytule (intitle), oraz ma wysoki pagerank.. wiec takich domen moze w Firefoksie duzo... jezeli nie znajdzie z wymaganymi kryteriami, to otwiera okno google z wynikami wyszukiwania

// tak, ale to tylko ułatwienie Firefoksa - Cold
// (ahh, chyba już 5. moja wypowiedź w tym wątku, którą uwieczniam poprzez edycję czyjegoś komentarza :)) - Cold

0

a mi wikipedia nie wchodzi o_O

1 użytkowników online, w tym zalogowanych: 0, gości: 1