[GastForen Programme Print/Bildbearbeitung Adobe InDesign GREP-Frage

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

GREP-Frage

Sonador
Beiträge gesamt: 157

2. Sep 2017, 13:02
Beitrag # 1 von 12
Bewertung:
(5005 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich bastel gerade an einer GREP-Suche die führende Nullen zu Datumsangaben hinzufügt.

Beispiele:
1.12.2017 wird zu 01.12.2017
1.1.2017 wird zu 01.01.2017


SUCHEN
Code
(?<!\d)(\d)(?=\.\d\d?\.\d\d)|(?<=\d\.)(\d)(?=\.\d\d) 


ERSETZEN
Code
0$0 



ERSTER TEIL (Tagesangabe):
Code
(?<!\d)(\d)(?=\.\d\d?\.\d\d) 

Findet 1.2.2017
Ersetzt 01.2.2017

Findet 1.12.2017
Ersetzt 01.12.2017


ZWEITER TEIL (Monatsangabe):
Code
(?<=\d\.)(\d)(?=\.\d\d) 

Findet 1.1.2017
Ersetzt 1.01.2017


Leider läuft das nicht in einem Rutsch durch. Ich muss Suchen und Ersetzen zwei mal auslösen (Was sogar zu einem Fehler führt, wenn vom ersten Suchdurchlauf noch eine Ziffer markiert ist).

Könnt ihr mir auf die Sprünge helfen?

Danke schon mal.

Grüße
Michael
X

GREP-Frage

Thomas Richard
Beiträge gesamt: 19334

2. Sep 2017, 13:48
Beitrag # 2 von 12
Beitrag ID: #559316
Bewertung:
(4998 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Auf die Schnelle in deinen ersten grep geschaut: Warum duchst du auch mehrstellige Zahlen? Du musst doch nur an die einstelligen?

Bisschen kurz weil vom handy aus. ;)


als Antwort auf: [#559315]

GREP-Frage

Sonador
Beiträge gesamt: 157

2. Sep 2017, 14:05
Beitrag # 3 von 12
Beitrag ID: #559317
Bewertung:
(4993 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich könnte natürlich auch einfach nach

»Keine Ziffer | Ziffer | Punkt« suchen ([^\d]\d\.)

Aber dann findet er auch das hier:

1.000.000 €

5.12 Uhr

Durch die Suche nach »Ziffer | Punkt | Ziffer | Ziffer | Punkt | Ziffer | Ziffer« kommt eigentlich nur ein Datum in Frage.


Oder habe ich deine Frage falsch verstanden?


Grüße
Michael


als Antwort auf: [#559316]

GREP-Frage

Thomas Richard
Beiträge gesamt: 19334

2. Sep 2017, 17:41
Beitrag # 4 von 12
Beitrag ID: #559318
Bewertung:
(4964 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Grundsätzlich brauchst du zwei Suchen. Weil du nach zwei verschiedenen 1stelligen Ziffern suchst, und das drumherum zur Ausgrenzung von anderen Zahlen mit Punkten drin brauchst.

Und du eh zweimal durchlaufen lassen müsstest, weil er mit deinem 'oder' Pipe beim 1.1.2017 (also 2 Treffer in einem Datum) ja auch immer nur eine von beiden einsen trifft.

Ich hab die zwei unterteilt in einen grep für einstellige Tage:
\<(\d)(?=\.\d{1,2}\.\d{4})
mit der Ersetzung
0$1

und ein grep für einstellige Monate:
\<\d{1,2}\.\K(\d)(?=\.\d{4})
ebenfalls mit der Ersetzung
0$1

Die Variable Länge {1,2} der jeweils nicht gesuchten Ziffer, macht das ganze unabhängig von der Reihenfolge der beiden Suchen.

Wenn du auch 2stellige Jahreszahlen einschliessen musst, würde hinten aus dem {4} ein {2,4}.


als Antwort auf: [#559317]

GREP-Frage

Thomas Richard
Beiträge gesamt: 19334

2. Sep 2017, 17:47
Beitrag # 5 von 12
Beitrag ID: #559319
Bewertung:
(4960 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wobei, ich habs gerade ausprobiert: Beide Suchausdrücke mit einem Pipe verbunden werden arg lang:

Code
\<(\d)(?=\.\d{1,2}\.\d{4})|(?<= )(\d)(?=\.\d{1,2}\.\d{4}) 


finden aber alles und müssten eben zur Sicherheit zweimal angestossen werden.


Grundsätzlich würde ich die Ersetzung aber genau andersherum laufen lassen. Diese nur vom Hirn beim Lesen dauernd zu unterdrückenden, vorne stehenden Nullen find ich sowas von nervig.


als Antwort auf: [#559318]

GREP-Frage

Sonador
Beiträge gesamt: 157

2. Sep 2017, 18:42
Beitrag # 6 von 12
Beitrag ID: #559320
Bewertung:
(4944 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Deine Aufteilung der GREP-Suchanfrage klappt. Kurz zum Verständnis. Was macht denn hier »\K«?

Bei deiner zweiten Variante mit Pipe stimmt etwas nicht. Copy-Paste-Fehler?

Für das entfernen einer führenden Null habe ich bereits ein GREP, das im Gegensatz zur bisher diskutierten Variante mit einem Durchlauf funktioniert:

Code
(?<!\d)(\d)(?=\.\d\.\d\d)|(?<!\d)(\d)(?=\.\d\d\.\d\d)|(?<=\d\.)(\d)(?=\.\d\d) 


Kannst du mir sagen, weshalb hier keine zwei Anläufe nötig sind?

Grüße
Michael


als Antwort auf: [#559319]

GREP-Frage

Thomas Richard
Beiträge gesamt: 19334

2. Sep 2017, 18:56
Beitrag # 7 von 12
Beitrag ID: #559321
Bewertung:
(4941 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Definitiv c&p Fehler.

Hab gerade keinen Rechner hier. Schaus mir später noch mal an.


als Antwort auf: [#559320]

GREP-Frage

Thomas Richard
Beiträge gesamt: 19334

3. Sep 2017, 17:04
Beitrag # 8 von 12
Beitrag ID: #559322
Bewertung:
(4812 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Deine Aufteilung der GREP-Suchanfrage klappt. Kurz zum Verständnis. Was macht denn hier »\K«?

Das ist ein positiver Lookbehind mit variabler Länge: Sinngemäß: Finde alles passende bis hierher aber nimms nicht mit in den Speicher.

Antwort auf: Bei deiner zweiten Variante mit Pipe stimmt etwas nicht. Copy-Paste-Fehler?

Jepp, so wars gemeint:
Code
\<\d{1,2}\.\K(\d)(?=\.\d{4})|\<(\d)(?=\.\d{1,2}\.\d{4}) 

Ersetzung: 0$0

Antwort auf: Für das entfernen einer führenden Null habe ich bereits ein GREP, das im Gegensatz zur bisher diskutierten Variante mit einem Durchlauf funktioniert:

Code
(?<!\d)(\d)(?=\.\d\.\d\d)|(?<!\d)(\d)(?=\.\d\d\.\d\d)|(?<=\d\.)(\d)(?=\.\d\d) 


Mit welcher Ersetzung? Aber davon ab, findet der mit auch nur einstellige Tage und Monate. Und da müsstest du doch nur nach Nullen suchen, nicht nach \d sonst wird aus dem 21. der 1.
Auch c&p Fehler?

Antwort auf: Kannst du mir sagen, weshalb hier keine zwei Anläufe nötig sind?

Evtl. liegts an der Reihenfolge. Wenn du 2 oder-Pipes einbaust und die Suche nach dem doppelt-einstelligen Treffer nach vorne nimmst, werden die zuerst gefunden, aber die bräuchten dann auch wieder ne andere Ersetzung als die Treffer, die nur Monat oder Tag aufweisen...


als Antwort auf: [#559320]
(Dieser Beitrag wurde von Thomas Richard am 3. Sep 2017, 17:07 geändert)

GREP-Frage

Sonador
Beiträge gesamt: 157

8. Sep 2017, 16:11
Beitrag # 9 von 12
Beitrag ID: #559375
Bewertung:
(4586 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Thomas,

sorry für die späte Antwort.

Ich hatte versehentlich die falsche GREP-Funktion hier gepostet.
Die GREP-Funktion zum entfernen von Nullen, welche in einem Rutsch durchläuft lautet:

Code
(0(?=\d\.\d\d\.\d\d))|(0(?=\d\.\d\.\d\d))|((?<=\d\.)0(?=\d\.\d)) 



Ersetzt wird mit nichts. Und funktioniert mit einem Durchlauf. Die Funktion zum entfernen leider nicht.

Grüße
Michael


als Antwort auf: [#559322]

GREP-Frage

pixxxelschubser
Beiträge gesamt: 1708

9. Sep 2017, 00:34
Beitrag # 10 von 12
Beitrag ID: #559381
Bewertung:
(4555 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zum Entfernen führender Nullen könntest du auch „andersherum“ vorgehen:
Suchen nach Datum
0?(\d{1,2}\.)0?(\d{1,2}\.[12]\d{3})
und Ersetzen durch
$1$2

Die eventuell vorhandenen Nullen bleiben dadurch einfach „auf der Strecke“. Und das funktioniert auch ohne mehrfach hintereinandergeschaltete Oder-Bedingungen.


als Antwort auf: [#559375]

GREP-Frage

Sonador
Beiträge gesamt: 157

9. Sep 2017, 11:46
Beitrag # 11 von 12
Beitrag ID: #559384
Bewertung:
(4527 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Jo, findet allerdings auch 1.1.2017 und führt dafür einen Suchen- und Ersetzen-Vorgang aus, obwohl das ja garnicht nötig wäre. Könnte irritieren.


Grüße
Michael


als Antwort auf: [#559381]

GREP-Frage

Thomas Richard
Beiträge gesamt: 19334

9. Sep 2017, 18:25
Beitrag # 12 von 12
Beitrag ID: #559386
Bewertung:
(4494 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habs damit probiert:
Code
0(?=\d\.\d{2}\.\d{4}|\d\.\d{4}) 

Ersetzen mit nichts. – findet alles in einem Durchgang.


als Antwort auf: [#559384]
(Dieser Beitrag wurde von Thomas Richard am 9. Sep 2017, 18:29 geändert)
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
17.04.2024

Online
Mittwoch, 17. Apr. 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!