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.
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%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.
Tags und Links delphi hyperlink string-matching