Internet-Adressen in InDesign aufspüren

gravatar
 · 
20.02.2024
 ·   · 
3 min read
Featured Image

In diesem Eintrag beschäftigen wir uns mit Mustern. Genaugenommen mit Textmustern – im speziellen mit Internet- und E-Mail-Adressen und wie man diese automatisch findet. Mehr dazu später.

InDesign unterstützt schon seit langer Zeit die sogenannte GREP-Suche sowie GREP-Stile. Falls Sie sich fragen, was GREP überhaupt ist, werden Sie erfreut sein, welche Möglichkeiten InDesign Ihnen hier zur Bearbeitung von Dokumenten bietet.

GREP an sich bedeutet »Global Regular Expression Print«. Dabei handelt es sich ursprünglich um ein UNIX-Tool, das die Suche nach bestimmten Code-Mustern erlaubt. Viele Texteditoren bieten heute in ihrer Suchen-/Ersetzen-Funktion dieses Werkzeug an – so auch InDesign.

Screenshot InDesign Suchen-/Ersetzen-Dialog im GREP-Modus

Auszeichnung und Silbentrennung

Hier beginnt es nun interessant zu werden. Sie können sich anhand von Platzhaltern (beliebige Zeichen, beliebige Ziffern) und einer Kombination aus zusätzlichen GREP-Befehlen verschiedenste Dinge einer »Art« in einem Dokument suchen lassen. Im konkreten Fall hier: Internet- (URLs) und E-Mail-Adressen.

Wenn Sie an einem Dokument arbeiten, in dem viele solcher Adressen vorkommen, möchten Sie diese vielleicht besonders auszeichnen: kursiv, farbig oder unterstrichen etc. Noch wichtiger ist bei diesen Adressen, dass sie keiner Silbentrennung unterliegen. Denn eine URL an der falschen Stelle zu trennen, führt sie unweigerliche auf eine Fehlerseite (404 – Seite nicht gefunden). Das erreichen Sie am einfachsten, wenn Sie dieser Adresse ein Zeichenformat mit der Spracheinstellung »Keine Sprache« zuweisen.

Screenshot Zeichenformatdialog InDesign

Tobias Wantzen hat dazu einen sehr interessanten und ausführlichen Blog-Eintrag geschrieben.

Die Frage ist nun, wie finden Sie eine beliebige Internet-Adresse? Da kommen wir wieder auf den Begriff »Muster« zu sprechen. Solche Adressen enthalten Elemente, die immer wieder (oder auch nicht) vorkommen. Wie zum Beispiel: »www«, »https://«, Punkte, Schrägstriche oder auch Domain-Endungen (.com, .at etc.)

Über die Jahre hinweg habe ich immer wieder an einem GREP-Ausdruck getüftelt, der eine beliebige Internet-Adresse in InDesign aufspüren kann. Dankenswerterweise habe ich dazu von Gregor Fellenz immer wieder sehr hilfreiche Tipps erhalten. Sein Artikel über automatisiertes GREP-Suchen/Ersetzen mit einem von ihm entwickelten Skript sollten Sie unbedingt lesen.

Erst vor nicht allzu langer Zeit war ich auch mit Tobias Wantzen darüber im Austausch und wir haben ein paar sehr nützliche Ergänzungen für einen GREP-Ausdruck gefunden, der nun scheinbar (fast) alle Vorkommen von Internet- und E-Mail-Adressen zuverlässig aufspüren kann:

(http|ftp)?(s?://)?[@a-zA-Z0-9.-]{1,256}\.[a-z]{1,6}\S*[^ \)\}\]!?.,;:\r(")(')]

Wenn Sie den oben angezeigten »Code« in das »Suchen nach:«-Feld (in der Abteilung GREP des Suchen/Ersetzen-Dialogs) einfügen und die Suche starten, sollte InDesign jede beliebige Internet- und E-Mail-Adresse für Sie finden. Es kann sein, dass URLs auch Klammern am Ende nutzen, dann müssten Sie den Ausdruck entsprechend anpassen.

Screenshot InDesign Suchen-/Ersetzen-Dialog im GREP-Modus

Um nicht jedes Mal aufs Neue diesen langen Ausdruck eingeben zu müssen, können Sie ihn im Suchen/Ersetzen-Dialog speichern.

Screenshot InDesign Suchen-/Ersetzen-Dialog im GREP-Modus

Noch nützlicher ist es, diesen Ausdruck im Rahmen eines Absatzformates in einen GREP-Stil zu verpacken, um oben erwähnte Auszeichnung und/oder Silbentrennungs-Regel automatisch von InDesign anwenden zu lassen.

Screenshot InDesign Absatzformat-Dialog

Zugegeben sieht der Ausdruck recht kompliziert aus, ist im Grunde aber nur eine Aneinanderreihung einzelner einfacher Abfragen. Mit dem Skript »WhatTheGREP« von Jongware (Theunis de Jong) können Sie direkt in InDesign den Aufbau solcher Ausdrücke sichtbar machen:

Screenshot GREP-Ausdruck Erklärung

Leider ist Herr de Jong 2020 verstorben. Er zählte zu den besten Skript-Entwicklern für InDesign und eine Vielzahl seiner Skripte sind zum Glück auf der Website von Kasyan Servetsky erreichbar.

Wenn Sie tiefer in die Materie der GREP-Suche eintauchen wollen, empfehle ich Ihnen das E-Book von Peter Kahrel – einem weiteren Skript-Veteranen für InDesign: »GREP in InDesign«, das Sie bei CreativePro.com beziehen können.

Jetzt wünsche ich Ihnen viel Spaß beim Auffinden von Internet- und E-Mail-Adressen! Falls Sie über einen Fall stolpern sollten, der von diesem Ausdruck nicht erkannt wird, lassen Sie es mich wissen. Dann kann ich die GREP-Abfrage entsprechend anpassen. Eine hundertprozentige Trefferquote ist bei der Suche nach Internetadressen schwer zu erreichen, aber damit sind wir schon recht knapp dran.

Einen weiteren Artikel zum Thema GREP finden Sie unter »Wo ist das Zeichenformat« und ein hilfreiches Skript zum gleichzeitigen Blättern von geöffnetes PDF-Dokumenten (ebenfalls von Tobias Wantzen) beschreibe ich im Artikel »Unterschiede in PDFs erkennen«.

Blog-Foto © René Andritsch

Tagged: Adobe Community Expert · GREP · Scripts · Tutorial · Workflow
Comments
Jonas
Hallo René,
mit dieser Seite – zu diesem GREP-Ausdruck – ist mir hervorragend geholfen. Vielen Dank.
Ich habe selber etwas herumprobiert und möchte das gerne hier kurz Teilen.
originalteil: (http|ftp)?(s?://)? …
geändert: (http|ftp)?s?(://)? …
erklärung: persönliche empfunden ist das zweite einfacher lesbar
originalteil: … \.[a-z]{1,6}\S* …
geändert: … \.[a-z]\S* …
erklärung: beide Abfragen funktionieren identisch
originalteil: … [^ \)\}\]!?.,;:\r(„)(‚)]
geändert: … [^ \)\}\]!?.,;:\r“‚]
erklärung: obere Abfrage schließt auch ( aus, was mir falsch erscheint.
Original: (http|ftp)?(s?://)?[@a-zA-Z0-9.-]{1,256}\.[a-z]{1,6}\S*[^ \)\}\]!?.,;:\r(„)(‚)]
Änderung: (http|ftp)?s?(://)?[@a-zA-Z0-9.-]{1,256}\.[a-z]\S*[^ \)\}\]!?.,;:\r“‚]
Fazit: Ich denke beides funktioniert super. Danke
Jetzt wünsche ich aber nur Internetseiten mit der Abfrage zu finden.
Das versuche ich so zu lösen:
(http|ftp|www\.)s?(://)?[a-zA-Z0-9.-]{1,256}\.[a-z]\S*[^ \)\}\]!?.,;:\r“‚]
Was passiert: In der zu findenden Adresse muss http oder ftp oder www. enthalten sein (denn ich habe das ? entfernt und www\. dazugefügt)
und dann darf bis zum nächsten Punkt kein @ enthalten sein (das @ hab ich entfernt).
Der Rest bleibt wie gehabt.
Nachteil: Adressen, die ohne www. oder http oder ftp angegeben wurden, werden von der GREP-Abfrage nicht gefunden. 🙁
Ich habe es so versucht (einfach das @ entfernen und Wortbeginn an den Anfang):
\<(http|ftp)?s?(://)?[a-zA-Z0-9.-]{1,256}\.[a-z]\S*[^ \)\}\]!?.,;:\r"']
aber das klappt nicht.
Warum?: Das @ scheint von InDesign als Wortgrenze gehandhabt zu werden?
Bei der Mailadresse: mu********@***il.com würde das: mmail.com als Internet-Adresse gefunden werden.
Beste Grüße
– Jonas –
René Andritsch
Hallo Jonas! Das Problem mit dem www scheint sich lösen zu lassen, wenn du es an eine andere Stelle stellst: (http|ftp|)s?(://)?(www\.)?[a-zA usw. Das mit dem @-Zeichen muss ich mir genauer ansehen.
[…] Gemeinsam mit Tobias Wantzen habe ich auch an einem GREP-Ausdruck gearbeitet, um URLs in InDesign-Texten leicht und automatisch aufspüren zu können. Lesen Sie dazu den Artikel »Internetadressen in InDesign aufspüren«. […]
Patrice
Lieber René
Vielen Dank für die ausführliche Erklärung und den GREP-Ausdruck.
Ich bin vor Kurzem an die Herausforderung gestossen, die Internet-Adressen im Dokument auch zu verlinken. Dabei war das Problem, dass die Adressen im Text sehr unterschiedlich daher kommen – manche mit http, manche mit https und manche auch ganz ohne etwas, also z.B. bloss reneandritsch.com.
Verlinkt sollen sie alle mit https werden und zudem die Hyperlinks alle mit einem UTM-Parameter für Google Analytics versehen.
Dabei dachte ich mir, es wär praktisch, wenn es eine «Suchen und Verlinken»-Funktion geben würde, die alle URLs findet und dabei noch die Möglichkeit offen lässt, das Hyperlink-Ziel manuell zu bearbeiten.
Mein Versuch: https://github.com/patricedaniel/FindAndLink/blob/main/FindAndLink.jsx
Mein Problem ist tatsächlich, dass mein Regex nicht ganz alle Fälle korrekt abdeckt.
Ich versuch’s bei Gelegenheit mit deinem vielversprechenden GREP-Ausdruck.
Beste Grüsse
René Andritsch
Lieber Patrice! Ein interessantes Projekt. Lass mich wissen, ob dieser GREP-Ausdruck in deinem Skript gut funktioniert. Würde mich freuen! Liebe Grüße, René

Leave a replyReply to