Antworten auf deine Fragen:
Neues Thema erstellen

ID hochgestelltr Zahl nach / ( max. 3 Ziffern)

Ettenna63

Immer neugierig

Hallo zusammen,
es klemmt mal wieder, und ich möchte euch um Hilfe bitten:
ID hochgestelltr Zahl nach / ( max. 3 Ziffern)
Was muss ich bei dem GREP-Stil eingeben?
 

Ettenna63

Immer neugierig

Hallo,
jetzt hätte ich doch noch eine Frage.
Wie würde die Formel aussehen, wenn ich nach einem Semikolon 3 - 5 Buchstaben formatieren möchte?
Leider kann ich noch keine Grepstile selbst erstellen, abe so wüde ich sehen, wo der Unterschied liegt.
Vielen Dank im Voraus
 
Hi @Ettenna63,
das sieht zwar nach einer einfachen Bitte aus – und auch wenn ich sie dir erfüllen kann – sie ist es nicht.

Natürlich sieht man die Unterschiede. Aber ganz ohne Erklärungen wirst du trotzdem nicht wirklich weiterkommen. Grep ist toll – aber Grep ist auch „ganz trockene“ Materie. Fast so, als müßtest du eine dir vollkommen fremde Sprache aneignen. Du solltest die Vokabeln lernen. Das wäre hilfreich, ist aber nicht zwingend notwendig, da dir InDesign das „Wörterbuch“ gleich mitliefert. Klicke auf das @ - Zeichen mit dem kleinen Pfeil (hinter der Zeile in der du auch deinen Grep einträgst). Dort findest du die gängigsten „Grep-Vokabeln“.

Doch meistens ist es mit dem einfachen „Zusammenklicken“ der Suchbegriffe nicht getan. Denn wenn du das Zusammenspiel der „Vokabeln“ nicht verstehst, dann macht dein Grep entweder gar nichts – oder er findet zuviel (falsch positive Treffer) – oder aber zu wenig (falsch negative Treffer).

Um das zu vermeiden, ist es immer am Besten, einen aussagekräftigen Beispieltext mitzuliefern. Und eine ganz konkrete Umschreibung, was genau gefunden werden soll, was genau nicht und ob es Stolperfallen gibt.

----------------------------------------------
Fangen wir an. Du möchtest ein Semikolon finden. Das ist einfach:
Code:
;

Aber das Semikolon soll zwar gefunden, aber im weiteren Verlauf (für das Ersetzen oder formatieren) ignoriert werden. Dafür setzt man das Semikolon in einen positiven Lookbehind
Code:
(?<=;)
Jetzt kommt die Krux: 3-5 Buchstaben.
alle Buchstaben?
alle Grossbuchstaben?
alle Kleinbuchstaben?
Buchstabengruppen?
kontextbezogene Varianten?
Umlaute ja/nein?
ausländische Buchstabenvarianten ja/nein?
Gibt es noch andere Zeichen zwischen den eventuell zu suchenden Buchstaben (z.B.; À-la-carte-Essen) ?

Ich höre an dieser Stelle einmal auf. Denn für einen kleinen Einblick sollte das auf jeden Fall ausreichen. Nehmen wir einfach mal alle Buchstaben:
Code:
[\l\u]

Und für die Anzahl gibt es verschiedene Schreibweisen. Für 3-5 bevorzuge ich persönlich:
Code:
{3,5}

Setzen wir es doch einmal zusammen:
Code:
(?<=;)[\l\u]{3,5}

Sieht gut aus – oder?


Schon. Aber findet leider nichts (sofern deine Rechtschreibung korrekt ist). Denn nach Semikolon sollte in deinem zu durchsuchenden Text ein Leerzeichen stehen. Also muss das auch noch in den Grep eingefügt werden. Prinzipiell reicht es, einfach ein Leerzeichen einzutippen (und zwar am Besten im Lookbehind) :
Code:
(?<=; )[\l\u]{3,5}

Leider gibt es Grep-Befehle, die genau diese „einfachen Leerzeichen“ nicht beachten. Dann müßtest du das Gruppenzeichen für alle Leerräume verwenden:
Code:
\s
Doch das findet auch Tabulatoren, weiche und harte Returns und andere Weißräume. Man könnte auch die Unicodenotation verwenden. Das ist eigentlich der sicherste Weg (geht aber jetzt zu weit in die Tiefe).

Noch schwieriger wird es, wenn du nicht ganz sicher bist, ob auch immer korrekt ein Leerzeichen vorhanden ist. Und dann auch noch abhängig davon, ob du:
- Suchen und Ersetzen anwenden möchtest ODER einen Grep-Stil oder
- eine Formatierung der Buchstaben z.B. in Bold o.ä. vornehmen möchtest und/oder
- ein eventuell fehlendes Leerzeichen einsetzen möchtest oder noch schwieriger, wenn du
- Unterstreichungen (in Verbindung mit einer InDesign-Version < CS6) einsetzen möchtest.

Hier verzweigen sich gerade die Möglichkeiten extrem, deshalb belasse ich es einfach einmal dabei.
Code:
(?<=; )[\l\u]{3,5}
Das ist dein „einfacher“ Grep, der 3-5 Buchstaben nach Semikolon (wenn immer ein Leerzeichen dazwischen vorhanden ist) findet – aber leider auch jede Menge Spielraum für Fehlerpotential bietet.

Viel Spass
;)
 
Zuletzt bearbeitet:
Upps, da habe ich doch vor lauter Schreiben noch das Anfügen der Wortgrenze vergessen. Denn der zuletzt gepostete Grep findet so nactürlich auch 3-5 Buchstaben nach Semikolon und Leerzeichen – und das auch in Wörtern mit mehr als 5 Buchstaben. Gib dem Grep einfach im Grep-Stil im Absatzformat ein farbiges Zeichenformat mit, dann siehst du genau, was ich meine.

Richtiger wäre dann eher:
Code:
(?<=; )[\l\u]{3,5}\>

oder auch:
Code:
(?<=; )[\l\u]{3,5}\b

;)
 

Ettenna63

Immer neugierig

Vielen, vielen Dank für Deine Mühe.
Ich habe nur {3,5} in {1,5} geändert.
Du hast geschrieben, dass [\l\u] alle Buchstaben beinhaltet, was schreibt man, wenn auch Ziffern dabei sind?
\> bedeutet dann, nicht mehr als 5 Buchstaben?

Hab mal getüftelt, und bin auf das gekommen: (?<=; )[\d \l\u]{1,5}

Ein Problem habe ich bei der manuellen Eingabe. Wenn ich den Backslash eingeben möchte und AlrGr drücke, ist das Eingabefeld zu.
Wenn ich Dir lästig werde, sag es ruhig :danke:
 
Zuletzt bearbeitet:
… Hab mal getüftelt, und bin auf das gekommen: (?<=; )[\d \l\u]{1,5} …

Darauf antworte ich am Besten mit meinen eigenen Worten
;)
… Denn wenn du das Zusammenspiel der „Vokabeln“ nicht verstehst, dann macht dein Grep entweder gar nichts – oder er findet zuviel (falsch positive Treffer) – oder aber zu wenig (falsch negative Treffer).
Um das zu vermeiden, ist es immer am Besten, einen aussagekräftigen Beispieltext mitzuliefern. Und eine ganz konkrete Umschreibung, was genau gefunden werden soll, was genau nicht und ob es Stolperfallen gibt …

Hast du deinen Grep auch ausreichend getestet?
Ist das Result wirklich das, was du erreichen wolltest?



Ich glaube nicht ganz – oder?
:confused:
 
Na dann ist ja alles gut.
;)

Aber noch einmal: Ohne Textbeispiele kannst du jeden Grep eigentlich erst mal vergessen!


Nur noch eine Frage: Brauchst du wirklich das (eventuell unnötige) Leerzeichen innerhalb der eckigen Klammern? Und wenn wir schon dabei sind: versuche es doch einfach einmal mit \w anstatt [\d \l\u]
;)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.634
Beiträge
1.538.448
Mitglieder
67.555
Neuestes Mitglied
scheflo
Oben