Forum: www.mikrocontroller.net HTTP Link aus Fliesstext heraus


von Karl H. (kbuchegg)


Lesenswert?

Hi Andreas

Könntest du dich mal der Sache hier annehmen

Bei diesem Link
http://www.mikrocontroller.net/articles/Include-Files_(C)
wird die schliessende ) von der Linkerkennung nicht als zum Link 
zugehörig erkannt, wodurch die Verlinkung in die Hose geht.

von Εrnst B. (ernst)


Lesenswert?

Aber bei anderen Links im Fliesstext (http://www.google.de/) sollte aber 
die schließende Klammer möglichst nicht dem Link zugeschlagen werden.

Die Link-Erkennuns-Regexp müsste also prüfen, ob auch innerhalb des 
Links eine Klammer geöffnet wurde...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Eine Abhilfe, wenn auch wenig praktikabel, ist das manuelle Ersetzen der 
schließenden Klammer durch %29.

http://www.mikrocontroller.net/articles/Include-Files_(C%29

Sieht bescheuert aus, ist umständlich, aber: geht.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Εrnst B✶ schrieb:
> Die Link-Erkennuns-Regexp müsste also prüfen, ob auch innerhalb des
> Links eine Klammer geöffnet wurde...
Das Problem ist das eine RegExp dies nicht allein erkenne kann.
Deine Bedingung würde zudem bei
> (Schau mal unter http://xyz.de/bla(c))
bereits auch nicht mehr vollständig das gewünschte Abbilden.

Was müsste man also tun?
1) Testen ob der Link mit einer schließenden Klammer endet.
2) im Text soweit zurückgehen, und eine öffnende Klammer finden ohne 
vorher auf eine schließenden zu treffen die am Anfang des Links steht 
oder davor (innerhalb geht ja nicht)
3) Hoffen das der Ersteller alles korrekt geklammert hat :P
4) Wenn eine weitere Klammer am Ende vorhanden ist das ganze 
wiederholen.

Und selbst dann bin ich sicher lassen sich Fälle konstruieren wo das 
nicht greift... z.B. Smilies:
> Schade :( aber schau doch mal unter http://www.ghghghg.de/abc(D)
Würde die Klammer als nicht zum Link gehörig werten.

Das einzig "sichere" wäre, wenn es einen [link]htt....[/link] Tag geben 
den man (im Notfall nachträglich) setzen könnte.

von Mark B. (markbrandis)


Lesenswert?

Läubi .. schrieb:
> Das einzig "sichere" wäre, wenn es einen [link]htt....[/link] Tag geben
> den man (im Notfall nachträglich) setzen könnte.

Das sag ich doch schon seit Jahren ;-)

von Karl H. (kbuchegg)


Lesenswert?

Das ist halt das Kreuz mit allen derartigen Automatiken: Manchmal 
versagen sie. Wohl dem, der dann auch noch händisch eingreifen kann.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Läubi .. schrieb:
> Deine Bedingung würde zudem bei
>> (Schau mal unter http://xyz.de/bla(c))
> bereits auch nicht mehr vollständig das gewünschte Abbilden.

Wieso? Die öffnende Klammer gehört doch eindeutig nicht zum Link, und 
dessen Anfang scheint Andreas' URL-Erkennungs-Regex ja auch 
offensichtlich korrekt zu erkennen. Das dürfte das Auftreten des http 
resp. https sein, bzw. spätestens das erste Whitespace vor dem, was als 
URL erkannt wurde.

von fa (Gast)


Lesenswert?

Läubi .. schrieb:
> Εrnst B✶ schrieb:
>> Die Link-Erkennuns-Regexp müsste also prüfen, ob auch innerhalb des
>> Links eine Klammer geöffnet wurde...
> Das Problem ist das eine RegExp dies nicht allein erkenne kann.

Geht das nicht mit Gruppen in RegExp?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.