Wie kann ich einen Standardsatz von Hyperlink-Erkennungsregeln in Delphi implementieren?

8

Ich mache derzeit automatische Erkennung von Hyperlinks innerhalb von Text in meinem Programm. Ich habe es sehr einfach gemacht und suche nur nach Ссылка oder www.

Aber ein Benutzer hat mir vorgeschlagen, dass ich es auf andere Formulare ausweite, z. B .: Ссылка oder .com

Dann habe ich gemerkt, dass es dort vielleicht nicht aufhören wird, denn es gibt FTP und Mailto und Datei, alle anderen Top-Level-Domains und sogar E-Mail-Adressen und Dateipfade.

Was ich für am besten halte, ist es, es auf das praktisch Mögliche zu beschränken, indem ich einige häufig verwendete Standardsätze von Hyperlink-Erkennungsregeln befolge, die derzeit verwendet werden. Vielleicht, wie Microsoft Word es macht, oder vielleicht, wie RichEdit es tut, oder vielleicht kennen Sie einen besseren Standard.

Meine Frage ist also:

Gibt es eine eingebaute Funktion, die ich von Delphi aufrufen kann, um die Erkennung durchzuführen, und wenn ja, wie würde der Anruf aussehen? (Ich plane in Zukunft, zu FireMonkey zu gehen, also würde ich etwas bevorzugen, das über Windows hinaus funktioniert.)

Wenn keine Funktion verfügbar ist, gibt es einen Ort, an dem ich eine dokumentierte Reihe von Regeln finden kann, die in Word, RichEdit oder einem anderen Regelwerk gefunden werden, was entdeckt werden sollte? Dann könnte ich den Erkennungscode selbst schreiben.

    
lkessler 23.01.2012, 03:58
quelle

3 Antworten

7

Probieren Sie die Funktion PathIsURL aus, die in ShLwApi unit.     

RRUZ 23.01.2012, 04:23
quelle
3

Der folgende Regex aus der RegexBuddy-Bibliothek könnte Sie dazu bringen, zu starten (ich kann keine Angaben über die Leistung machen) .

Regex

%Vor%

Erläuterung

  

URL: Finden Sie im Volltext      Die letzte Zeichenklasse stellt sicher, dass, wenn eine URL Teil eines Textes ist,      Satzzeichen wie Komma oder Punkt, nachdem die URL nicht als Teil interpretiert wurde      der URL.

Übereinstimmungen (ganz oder teilweise)

%Vor%

Entspricht nicht

%Vor%

Eine Reihe von Regeln finden Sie in RFC 3986

  

Ein Uniform Resource Identifier (URI) ist eine kompakte Abfolge von
  Zeichen, die eine abstrakte oder physische Ressource identifizieren. Dieser
  Spezifikation definiert die generische URI-Syntax und einen Prozess für
  Auflösen von URI-Referenzen, die in relativer Form zusammen mit
stehen könnten   Richtlinien und Sicherheitsüberlegungen für die Verwendung von URIs auf dem
  Internet

Ein Regex, der eine URL gemäß RFC 3986 validiert, wäre

%Vor%     
Lieven Keersmaekers 23.01.2012 07:40
quelle
1

Reguläre Ausdrücke können der Weg sein, hier zu gehen, um die verschiedenen Muster zu definieren, die Sie für angemessene Hyperlinks halten.

    
Rob McDonell 23.01.2012 06:18
quelle