hilfdirselbst.ch
Facebook Twitter gamper-media
« « 1 2 » »  
herrwind
Beiträge: 47
13. Dez 2013, 13:28
Beitrag #1 von 24
Bewertung:
(5353 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP Datumformat, Hilfe gesucht


Hallo Leute,

ich möchte dieses Datum-Format auslesen, bzw. nur der Monat+Zahl:

June 6, 1997

Diesen Code habe ich hinbekommen:
January ((?<= )[0-9]{1,2})?

Was ich nicht hinbekomme: Ich möchte, dass das Leerzeichen
zwischen Monat und Zeit nicht ausgezeichnet wird.June_6

Darüber hinaus wollte ich euch fragen, wie ich das am besten löse mit den 12 Monaten.

Muss ich denn immer schreiben: (January ((?<= )[0-9]{1,2})?|February ((?<= )[0-9]{1,2})?| … oder lässt sich das
schöner verpacken?

Danke!
(Dieser Beitrag wurde von herrwind am 13. Dez 2013, 13:29 geändert)
Top
 
X
Kai Rübsamen  M  p
Beiträge: 4521
13. Dez 2013, 15:21
Beitrag #2 von 24
Beitrag ID: #520992
Bewertung:
(5309 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP Datumformat, Hilfe gesucht


Mir ist eigentlich nicht klar, was du hier vor hast. Viell. geht es mir nicht alleine so ;-)

Zunächst:
1. GREP oder GREP-Stil?
2. Du suchst also nur Monat u. Zahl?
3. Monat u. Zahl sollen einfach fett werden?
4. Monat wird rot, Leerzeichen u. Zahl schwarz?
5. Das Leerzeichen soll grün oder gar nicht formatiert werden, weil?

Dann:
Erklär mir mal bitte, was deiner Meinung nach durch den GREP-Ausdruck gefunden wird?
Mich würde interessieren, was du dir beim "?", Leerzeichen u. Lookbehind gedacht hast!
Gruß Kai Rübsamen
_______________________
als Antwort auf: [#520984] Top
 
herrwind
Beiträge: 47
13. Dez 2013, 15:30
Beitrag #3 von 24
Beitrag ID: #520995
Bewertung:
(5302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP Datumformat, Hilfe gesucht


Antwort auf [ Kai Rübsamen ] Mir ist eigentlich nicht klar, was du hier vor hast. Viell. geht es mir nicht alleine so ;-)

Zunächst:
1. GREP oder GREP-Stil?
2. Du suchst also nur Monat u. Zahl?
3. Monat u. Zahl sollen einfach fett werden?
4. Monat wird rot, Leerzeichen u. Zahl schwarz?
5. Das Leerzeichen soll grün oder gar nicht formatiert werden, weil?

Dann:
Erklär mir mal bitte, was deiner Meinung nach durch den GREP-Ausdruck gefunden wird?
Mich würde interessieren, was du dir beim "?", Leerzeichen u. Lookbehind gedacht hast!

1. GREP-Stil
2. Ich suche nur Monat;[Leerzeichen];1,2-stellige Zahl
3. Monat und Zahl sollen fett werden, ja
4. Nein, Monat und Zahl gleich behandeln, Leerzeichen muss unberührt bleiben
5. Leerzeichen komplett ignorieren, ausgenommen der Bedingung für die Zusammensetzung Monat;[Leerzeichen];1,2-stellige Zahl

:) Danke
als Antwort auf: [#520992] Top
 
Thomas Richard  M  p
Beiträge: 17736
13. Dez 2013, 16:13
Beitrag #4 von 24
Beitrag ID: #521002
Bewertung:
(5271 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP Datumformat, Hilfe gesucht


Ich denke, dann wirst du 2x suchen müssen.

Einmal für den Monat, und einmal für die Tagesziffern.

Also einmal links des Leerzeichens und einmal rechts davon.

Um die Suche abzusichern kannst du ja gerne nach der komplette Phrase suchen.


MfG

Thomas


Und wenn dir geholfen wurde, hilf uns, dies auch weiterhin zu können.
http://www.hilfdirselbst.ch/info/
als Antwort auf: [#520995] Top
 
Kai Rübsamen  M  p
Beiträge: 4521
13. Dez 2013, 16:32
Beitrag #5 von 24
Beitrag ID: #521003
Bewertung:
(5257 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP Datumformat, Hilfe gesucht


Oder du suchst den ganzen Ausdruck u. stellst dann das Leerzeichen zurück (siehe Screen). Das mit der Erklärung deines GREPs war übrigens ernst gemeint!
Gruß Kai Rübsamen
_______________________
als Antwort auf: [#521002] Top
 
Thomas Richard  M  p
Beiträge: 17736
13. Dez 2013, 16:55
Beitrag #6 von 24
Beitrag ID: #521004
Bewertung:
(5231 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP Datumformat, Hilfe gesucht


Dir ist in February was durchgerutscht ;-)

Ich habs hier mit einem positiven Lookahead für den Monatsnamen probiert und einem positiven Lookbehind für die Tage probiert, ersteres klappt, letzteres nicht!?

\w+(?=\s\d{1,2},\s\d{2,4})

(?<=\w+\s)\d{1,2}(?=,\s\d{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: [#521003] Top
 
Thomas Richard  M  p
Beiträge: 17736
13. Dez 2013, 17:22
Beitrag #7 von 24
Beitrag ID: #521005
Bewertung:
(5201 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP Datumformat, Hilfe gesucht


Antwort auf [ Thomas Richard ] (?<=\w+\s)\d{1,2}(?=,\s\d{2,4})


Jetzat:

Code
(?<=\w\s)\d{1,2}(?=,\s\d{2,4}\>) 


geht, aber

Code
(?<=\w+\s)\d{1,2}(?=,\s\d{2,4}\>) 


geht nicht.

Kann mir das mal jemand erklären? ID CS6 8.0.2 Mac


MfG

Thomas


Und wenn dir geholfen wurde, hilf uns, dies auch weiterhin zu können.
http://www.hilfdirselbst.ch/info/
als Antwort auf: [#521004] Top
 
herrwind
Beiträge: 47
13. Dez 2013, 17:25
Beitrag #8 von 24
Beitrag ID: #521006
Bewertung:
(5197 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP Datumformat, Hilfe gesucht


Antwort auf [ Thomas Richard ] Dir ist in February was durchgerutscht ;-)

Ich habs hier mit einem positiven Lookahead für den Monatsnamen probiert und einem positiven Lookbehind für die Tage probiert, ersteres klappt, letzteres nicht!?

\w+(?=\s\d{1,2},\s\d{2,4})

(?<=\w+\s)\d{1,2}(?=,\s\d{2,4})


Nee, so kann man das nicht lösen, aber die Schuld trage ich, weil ich es nicht genau erläutert habe.

Es muss gefunden werden:
[Monat][Leerzeichen][zweistellige Zahl]
aber auch nur [Monat], wenn es keine Zahl gibt.

weitere Bedingungen die ich nicht umgesetzt bekomme:
— wenn es keine zweistellige Zahl ist, soll nur der Monat gefunden werden.

Ohne Monatsnamen komme ich nicht aus, weil sich im Text noch zahlreiche andere zweistellige Zahlen befinden.
als Antwort auf: [#521004] Top
 
Ralf Hobirk p
Beiträge: 5772
13. Dez 2013, 17:55
Beitrag #9 von 24
Beitrag ID: #521007
Bewertung:
(5159 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP Datumformat, Hilfe gesucht


Antwort auf: Kann mir das mal jemand erklären?

Zitat aus Peter Kahrels Buch "GREP in InDesign":
Zitat Lookbehind has a limitation in that the expression that it contains must always match items of the same length.

Will heißen, dass das "+" beim Lookbehind nicht greift ;-)

---
Viele Grüße aus Istrien Cool
Ralf
---
iMac i7 (12,2) 3,4 GHz, 16 GB | MacBook Pro 15" (8,2) 2,0 GHz, 16 GB | Mac Mini (3,1) als Server 2,53 GHz, 8 GB | 10.11.6 El Capitan | CS6 (ID 8.0.1)
als Antwort auf: [#521005] Top
 
Kai Rübsamen  M  p
Beiträge: 4521
13. Dez 2013, 19:56
Beitrag #10 von 24
Beitrag ID: #521011
Bewertung:
(5100 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP Datumformat, Hilfe gesucht


Antwort auf: Dir ist in February was durchgerutscht ;-)

Nö, den hab ich ausgelassen, damit der Rest noch ins Fenster passt. Den Grund für diese Schreibweise hat euch Ralf genannt.

Antwort auf: Nee, so kann man das nicht lösen, aber die Schuld trage ich, weil ich es nicht genau erläutert habe.

Hast du dir mal überlegt, dass das Leben viel einfacher wäre, wenn du jedes Mal eine idml vorher/nachher zur Verfügung stellen würdest?
Mich hätte z.B. auch mal deine Lösung in dem Länder-GREP-Thread interessiert. Die Lösung im Forum hätte auch "Indianer" gefunden. Deine Lösung hast du leider nicht verraten.

@Thomas: Wenn einer nach Januar, Februar usw. sucht, sollte man das auch im Ausdruck so formulieren u. nicht generell mit \w arbeiten. Das macht die Ausdrücke nicht nur besser lesbar, sondern dürfte auch performanter sein.

@ herrwind: Wenn du nur Monate finden willst, musst du den Rest eben optional setzen: (Jan|Feb|Mar|Jun|Dec)\w+(\s\d{1,2})?
Gruß Kai Rübsamen
_______________________
als Antwort auf: [#521007]
(Dieser Beitrag wurde von Kai Rübsamen am 13. Dez 2013, 19:58 geändert)
Top
 
Thomas Richard  M  p
Beiträge: 17736
13. Dez 2013, 22:11
Beitrag #11 von 24
Beitrag ID: #521013
Bewertung:
(5040 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP Datumformat, Hilfe gesucht


Antwort auf [ Kai Rübsamen ]
Antwort auf: Dir ist in February was durchgerutscht ;-)

Nö, den hab ich ausgelassen, damit der Rest noch ins Fenster passt. Den Grund für diese Schreibweise hat euch Ralf genannt.

Das mag sein, trotzdem darf das n nicht mit in den variablen Teil, weil eben January ein n vorm uary hat und February eben ein r.

Antwort auf [ Kai Rübsamen ] @Thomas: Wenn einer nach Januar, Februar usw. sucht, sollte man das auch im Ausdruck so formulieren u. nicht generell mit \w arbeiten. Das macht die Ausdrücke nicht nur besser lesbar,

Da gebe ich dir Recht. Ich gehe bei sowas immer vom universellen aus und individualisiere nur soweit nötig, wie du eben auch mit deinen Monatsteilen.

Antwort auf [ Kai Rübsamen ] sondern dürfte auch performanter sein.

Das Halte ich für unwahrscheinlich. Überleg dir wie grep sucht. Es frisst sich durch den kompletten Text, bis ein Treffer auftaucht, dann werden evtl. Einschränkungen abgeklopft. Wenn Optionen vorkommen, geht es für den Passus den Text mehrmals durch.
Sowas ist aber auch immer stark von der Implementierung abhängig, und da die in ID in Relation zu den CLI Versionen von grep deutlich anders ist, müsste man das konkret testen.

@ herrwind: Wenn du nur Monate finden willst, musst du den Rest eben optional setzen: (Jan|Feb|Mar|Jun|Dec)\w+(\s\d{1,2})?
Findet dann aber jegliche Monatserwähnungen im Text, oder?

Also ich vermute, dass das so nichts wird. Wenn die Datumsphrase nicht konkret auf ein tatsächliches Datum bestehend aus Tag und Monat begrenzt werden kann, ist die Gefahr gross, dass jegliche Erwähnung eines Monats zu einem Treffer führt.


MfG

Thomas


Und wenn dir geholfen wurde, hilf uns, dies auch weiterhin zu können.
http://www.hilfdirselbst.ch/info/
als Antwort auf: [#521011] Top
 
Thomas Richard  M  p
Beiträge: 17736
13. Dez 2013, 22:30
Beitrag #12 von 24
Beitrag ID: #521014
Bewertung:
(5033 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP Datumformat, Hilfe gesucht


Antwort auf [ Ralf Hobirk ]
Antwort auf: Kann mir das mal jemand erklären?

Zitat aus Peter Kahrels Buch "GREP in InDesign":
Zitat Lookbehind has a limitation in that the expression that it contains must always match items of the same length.

Will heißen, dass das "+" beim Lookbehind nicht greift ;-)

Danke Ralf!
Jetzt wo du es schreibst, dämmert mir, dass ich da schon mal dran gescheitert bin.


MfG

Thomas


Und wenn dir geholfen wurde, hilf uns, dies auch weiterhin zu können.
http://www.hilfdirselbst.ch/info/
als Antwort auf: [#521007] Top
 
Ralf Hobirk p
Beiträge: 5772
13. Dez 2013, 22:34
Beitrag #13 von 24
Beitrag ID: #521015
Bewertung:
(5030 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP Datumformat, Hilfe gesucht


Mach dir keine Gedanken, hat mich auch schon zur Verzweiflung gebracht ;-)

---
Viele Grüße aus Istrien Cool
Ralf
---
iMac i7 (12,2) 3,4 GHz, 16 GB | MacBook Pro 15" (8,2) 2,0 GHz, 16 GB | Mac Mini (3,1) als Server 2,53 GHz, 8 GB | 10.11.6 El Capitan | CS6 (ID 8.0.1)
als Antwort auf: [#521014] Top
 
Ralf Hobirk p
Beiträge: 5772
13. Dez 2013, 22:40
Beitrag #14 von 24
Beitrag ID: #521016
Bewertung:
(5028 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP Datumformat, Hilfe gesucht


Hallo Thomas,

Antwort auf: Wenn du nur Monate finden willst, musst du den Rest eben optional setzen: (Jan|Feb|Mar|Jun|Dec)\w+(\s\d{1,2})?
Findet dann aber jegliche Monatserwähnungen im Text, oder?

Das sollte nicht der Fall sein. Es wird ja nach dem Monatsnamen ausdrücklich nach einem Leerzeichen (\s) und 1 oder 2 Ziffern (\d{1,2}) gesucht.

---
Viele Grüße aus Istrien Cool
Ralf
---
iMac i7 (12,2) 3,4 GHz, 16 GB | MacBook Pro 15" (8,2) 2,0 GHz, 16 GB | Mac Mini (3,1) als Server 2,53 GHz, 8 GB | 10.11.6 El Capitan | CS6 (ID 8.0.1)
als Antwort auf: [#521013] Top
 
Thomas Richard  M  p
Beiträge: 17736
13. Dez 2013, 23:15
Beitrag #15 von 24
Beitrag ID: #521019
Bewertung:
(4979 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP Datumformat, Hilfe gesucht


Antwort auf [ herrwind ] Es muss gefunden werden:
[Monat][Leerzeichen][zweistellige Zahl]
aber auch nur [Monat], wenn es keine Zahl gibt.


Meinen eigenen Einwänden zum Trotz, wäre dann das eine Lösung:

Code
(?<=[ary|rch|ril|May|une|uly|ust|ber]\s)\d{2}(?=,\s) 

(January|February|March|April|May|June|July|August|September|October|November|December)(?=(\s\d{2})?,\s)


Aber:
Zitat June 06, 1197

May 14, 1245
November 31, 2212
as of November 1, 12

in August, when the grain
December, 1945
September
so the color amber, is without any notice

truly 45, new


PS: DAS Leerzeichen vor den beiden \s baut mir die Forensoftware ein, die sind nicht da und gehören da auch nicht hin.


MfG

Thomas


Und wenn dir geholfen wurde, hilf uns, dies auch weiterhin zu können.
http://www.hilfdirselbst.ch/info/
als Antwort auf: [#521006]
(Dieser Beitrag wurde von Thomas Richard am 13. Dez 2013, 23:18 geändert)
Top
 
« « 1 2 » »  
X