[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: 150

2. Sep 2017, 13:02
Beitrag # 1 von 12
Bewertung:
(2472 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: 17935

2. Sep 2017, 13:48
Beitrag # 2 von 12
Beitrag ID: #559316
Bewertung:
(2465 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. ;)


MfG

Thomas


Und wenn dir geholfen wurde, hilf uns, dies auch weiterhin zu können.
http://www.hilfdirselbst.ch/info/


als Antwort auf: [#559315]

GREP-Frage

Sonador
Beiträge gesamt: 150

2. Sep 2017, 14:05
Beitrag # 3 von 12
Beitrag ID: #559317
Bewertung:
(2460 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: 17935

2. Sep 2017, 17:41
Beitrag # 4 von 12
Beitrag ID: #559318
Bewertung:
(2431 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}.


MfG

Thomas


Und wenn dir geholfen wurde, hilf uns, dies auch weiterhin zu können.
http://www.hilfdirselbst.ch/info/


als Antwort auf: [#559317]

GREP-Frage

Thomas Richard
Beiträge gesamt: 17935

2. Sep 2017, 17:47
Beitrag # 5 von 12
Beitrag ID: #559319
Bewertung:
(2427 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.


MfG

Thomas


Und wenn dir geholfen wurde, hilf uns, dies auch weiterhin zu können.
http://www.hilfdirselbst.ch/info/


als Antwort auf: [#559318]

GREP-Frage

Sonador
Beiträge gesamt: 150

2. Sep 2017, 18:42
Beitrag # 6 von 12
Beitrag ID: #559320
Bewertung:
(2411 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: 17935

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

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


MfG

Thomas


Und wenn dir geholfen wurde, hilf uns, dies auch weiterhin zu können.
http://www.hilfdirselbst.ch/info/


als Antwort auf: [#559320]

GREP-Frage

Thomas Richard
Beiträge gesamt: 17935

3. Sep 2017, 17:04
Beitrag # 8 von 12
Beitrag ID: #559322
Bewertung:
(2279 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...


MfG

Thomas


Und wenn dir geholfen wurde, hilf uns, dies auch weiterhin zu können.
http://www.hilfdirselbst.ch/info/


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

GREP-Frage

Sonador
Beiträge gesamt: 150

8. Sep 2017, 16:11
Beitrag # 9 von 12
Beitrag ID: #559375
Bewertung:
(2053 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: 1564

9. Sep 2017, 00:34
Beitrag # 10 von 12
Beitrag ID: #559381
Bewertung:
(2022 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.

Wink
Viele Grüße
pixxxelschubser




Was wir wissen, ist ein Tropfen; was wir nicht wissen, ein Ozean.

Isaac Newton




als Antwort auf: [#559375]

GREP-Frage

Sonador
Beiträge gesamt: 150

9. Sep 2017, 11:46
Beitrag # 11 von 12
Beitrag ID: #559384
Bewertung:
(1994 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: 17935

9. Sep 2017, 18:25
Beitrag # 12 von 12
Beitrag ID: #559386
Bewertung:
(1961 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.


MfG

Thomas


Und wenn dir geholfen wurde, hilf uns, dies auch weiterhin zu können.
http://www.hilfdirselbst.ch/info/


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

Photoshop / Lightroom

Veranstaltungen

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
13.12.2018 - 20.12.2018

3400 Burgdorf, BE
Donnerstag, 13. Dez. 2018, 09.00 Uhr - Donnerstag, 20. Dez. 2018, 09.00 Uhr

Workshop

Schritt für Schritt: Planen, konzipieren und Umsetzen einer responsiven Website mit Wordpress: Lokalen Server einrichten; Frontend/Backend; Vorgehen Schritt für Schritt bis zur fertigen Site.

2-Tages-Workshop CHF 990.00

Ja

Organisator: PubliCollege GmbH

Kontaktinformation: Beat Kipfer, E-Mailinfo AT publicollege DOT ch

www.publicollege.ch

Websites erstellen mit Wordpress und Elementor Pro
Veranstaltungen
19.12.2018

Wie installiert und konfiguriert man Mailchimp und verwendet es für sein Business

Internet
Mittwoch, 19. Dez. 2018, 10.00 - 11.30 Uhr

Webinar

In diesem Webinar zeige ich den Teilnehmern, wie sie mit Mailchimp eigene Newsletter verschicken können. Wie sie Mailchimp installieren und konfigurieren müssen und wie sie eine erste Kampagne machen können.

Gratis

Ja

Organisator: Eric Mächler

https://events.genndi.com/register/818182175026318367/4ac0f277c0

Der Start ins E-Mail Marketing mit Mailchimp