Verkrüppelter Link

OP #4978046
Lesenswert?

Hi,

ich habe gerade versucht einen Beitrag zu editieren und einen Link auf 
einen Wiki-Artikel dort einzufügen.

Beitrag ist der folgende:
Beitrag "Re: [Rundum] Sammelbestellung de.Mouser.com 2017"

Hier sollte eine URL eingegeben werden, die auf die Wiki-Seite verweist:
https://www.mikrocontroller.net/articles/Sammelbestellungen(Mouser)
Aber die Erkennung, was zum Link gehört scheint nicht richtig zu 
funktionieren, die letzte Klammer wird nicht als zugehörig zum Link 
erkannt.

So etwas ähnliches muss dem Threadstarter auch passiert sein oder auch 
was anderes, denn der erste Link ist bei den "..." abgeschnitten.

Vielleicht kann das bei Gelegenheit mal gefixt werden.

Grüße!
Gast #4978470
Lesenswert?

> Normalerweise sind Klammern nicht Teil des Links [..]

'Normalerweise' ist die Anzahl der öffnenden und der schließenden 
Klammern gleich, und Schließende kommen erst nach der jeweils 
zugehörigen Öffnenden. Offenkundig gehört in einem Fragment wie..
1
foo bar (siehe auch https://www.mikrocontroller.net/articles/Sammelbestellungen(Mouser))
..die erste schließende Klammer zur URL, die zweit nicht. So einfach 
wäre das und es würde grob >>99% der Fehlinterpretationen erschlagen 
(der Rest nutzt unnormale Klammersetzung). Scheint aber wie geschrubt 
nicht so einfach zu sein, das der Forensoftware beizubringen, sonst 
hätte Andreas das wohl schon längst getan.
Gast #4978784
Lesenswert?

Beitrag #4978815 wurde von einem Moderator gelöscht.
#4979338
Lesenswert?

Nehmen wir einmal an, die folgenden beiden Annahmen treffen zu:

a.) Zu einer öffnenden runden Klammer im Link gibt es stets auch eine 
schließende runde Klammer im Link.
b.) Die schließende Klammer ist das letzte Zeichen im Link (so wie in 
den obigen Beispielen).

Dann wäre ein Algorithmus zur Erkennung eines solchen "Klammer-Links" 
wohl recht einfach zu formulieren:

1.) Iteriere über alle Zeichen ab dem ersten, welches als zu einem Link 
zugehörig erkannt wurde.
2.) Prüfe ob eine öffnende Klammer im Link existiert. Wenn nein --> 
Weitere Bearbeitung des Links so wie bisher auch schon. Wenn ja --> 
Schritt 3.)
3.) Iteriere weiter bis die schließende Klammer gefunden wurde. Diese 
ist dann zugleich auch das letzte Zeichen im Link.
#4981144
Lesenswert?

Sieht für mich nach einer sachw für regex aus. Spontan würde ich das so 
schreiben:
1
/[a-zA-Z]{2,}:\/\/([^@\s]+@)?(([a-zA-Z\-0-9]+\.)*[a-zA-Z\-0-9]+|[0-9]{2,3}(\.[0-9]{2,3}){3})(\/(:?([^\s()%?:]|\([^\s()%?:]*\)|%[0-9]{2})+\/?)*)?(\?(:?([^\s()?%:]|\([^\s()?%:]*\)|%[0-9]{2}))*)?(\#([^\s()%?:]|\([^\s()%?:]*\)|%[0-9]{2})*)?/g
Beitrag #5070426 wurde von einem Moderator gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren