Wyrażenia regularne i zamiana URL

0

Witam,
mam taki problem, mam ciąg postaci

http://www.strona1.plhttp://strona2.pl&2hsj kl2po;http://strona3.pl

chciałbym zamienić ten ciąg na klikalne linki, tak aby otrzymać w wyniku 3 linki do stron, czy ma ktoś pomysł jak to rozwiązać?
Znalazłem takie rozwiązanie:

Regex.Replace(ciagWejsciowy, @"(\bhttps?://[^;]+\b)", @"<a href=""$0"">$0</a>")

jednak tutaj znakiem który musi rozdzielać poszczególne adresy jest ";", a chciałbym zrobić tak aby nie odgraniczać żadnym znakiem poszczególnych adresów, tylko każdy zaczynający się od "http://" traktować jako osobny.
Będę niezmierni wdzięczny za wszelką pomoc.
Pozdrawiam.

0

w eclipse działa taki regexp: (http://.?)(?=http)|(http://.$)
widzę jeden problem - co zrobisz, kiedy po linku będzie tekst? skąd będziesz wiedział, że link się skończył i teraz jest już tylko tekst?

0

właśnie tu jest problem, chciałbym osiągnąć efekt w którym nowy link byłby brany od wystąpienia znaków "http://" a co będzie dalej już mnie nie interesuje, więc całość aż do wystąpienia kolejnego "http://" zamieniam na linka, zakładam że takie coś da się zrobić, ale pomimo wielu rozwiązań do podobnych problemów nie znalazłem takiego do mojego przypadku.

0

no to podałem Ci rozwiązanie, nawet jeśli regexp pod .net ma nieco inną składnię, to zasada zostaje identyczna.

0

Super, działa. Dzięki wielkie, myślałem że skoro zaznaczyłeś że działa w Eclipse to tylko w Eclipse:)
Pozdrawiam!

1

Regexy są podobne we wszystkich językach programowania. Dlatego warto się ich uczyć, a nie kombinować z Substringami i IndexOf czy podobnymi, bo wielu tak robi...

0

regexp jest znacznie wolniejszy od wielu indexof/substring...

1

(znowu odpowiadam z opóźnieniem, sorry)

regexp jest znacznie wolniejszy od wielu indexof/substring...

Ja nie mówię żeby nie używać indexOf/Substring, ale widziałem wiele rozwiązań wykonujących skomplikowane modyfikacje ciągów za pomocą powyższych (w tym najlepsze moje - kiedy sobie przypomnę metodę posiadającą coś koło 8-9 (!) zagnieżdżonych pętli i if-ów, dwoma goto (!!), zajmującą jakieś 1.5 strony w IDE (!!!) - i pewnie to wszystko się dało zrobić jednym, dwoma regexami...) to ogarniają mnie koszmary.

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