www.mikrocontroller.net

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


Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Mark Brandis (markbrandis)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: fa (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.