[GastForen Programme Print/Bildbearbeitung Adobe InDesign Grep: Suche und Ersetzen von Leerzeichen

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

Grep: Suche und Ersetzen von Leerzeichen

meistroM
Beiträge gesamt: 13

3. Jan 2008, 17:42
Beitrag # 1 von 34
Bewertung:
(48893 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo...

Habe gerade eine Suchfunktion aufgebaut
Beispiel: Suche 10cm oder 10 cm
Code
[0-9]\s?(mm|cm|km|kg|t) 


zu 10(1/8 Geviert)cm ersetzen
Code
$0~< 


Ich komme einfach auf keine Lösung, cm oder jeweiliges Maß soll wieder angehängt werden. Vielleicht habt ihr eine Idee, habe in grep noch keine Erfahrung. Vielen Dank

Gruß
MM

(Dieser Beitrag wurde von meistroM am 3. Jan 2008, 17:48 geändert)
X

Grep: Suche und Ersetzen von Leerzeichen

Kai Rübsamen
  
Beiträge gesamt: 4684

3. Jan 2008, 18:04
Beitrag # 2 von 34
Beitrag ID: #329101
Bewertung:
(48800 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo!

Versuch es mal damit:
(\d+\s?)(mm|cm|km|kg|t)

ersetzen durch:
$1~<$2


als Antwort auf: [#329096]

Grep: Suche und Ersetzen von Leerzeichen

Gerald Singelmann
  
Beiträge gesamt: 6269

3. Jan 2008, 18:07
Beitrag # 3 von 34
Beitrag ID: #329103
Bewertung:
(48798 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Rübi, das \s? muss aus der Klammer raus, sonst wird es gleich wieder eingesetzt.
Also

Code
(\d)\s?(cm|etc) 



als Antwort auf: [#329101]

Grep: Suche und Ersetzen von Leerzeichen

Kai Rübsamen
  
Beiträge gesamt: 4684

3. Jan 2008, 18:11
Beitrag # 4 von 34
Beitrag ID: #329105
Bewertung:
(48792 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ähm, oja ;-)

weist du, wie man das "oder" Zeichen direkt anselle über den Dialog eingeben kann (am Mac)?


als Antwort auf: [#329103]

Grep: Suche und Ersetzen von Leerzeichen

Gerald Singelmann
  
Beiträge gesamt: 6269

3. Jan 2008, 18:15
Beitrag # 5 von 34
Beitrag ID: #329107
Bewertung:
(48787 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Alt 7 ist |
Alt Shift 7 ist \


als Antwort auf: [#329105]

Grep: Suche und Ersetzen von Leerzeichen

Kai Rübsamen
  
Beiträge gesamt: 4684

3. Jan 2008, 18:17
Beitrag # 6 von 34
Beitrag ID: #329108
Bewertung:
(48785 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
danke


als Antwort auf: [#329107]

Grep: Suche und Ersetzen von Leerzeichen

pixxxelschubser
Beiträge gesamt: 1708

3. Jan 2008, 19:38
Beitrag # 7 von 34
Beitrag ID: #329133
Bewertung:
(48732 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

eine kleine Nachfrage:

(\d+\s?)(mm|cm|km|kg|t) ändert doch auch den Abstand vor kleingeschriebenen Wörten, die mit "t" beginnen und nach einer Zahl stehen.
2007 tummelten sich 20 tolle Kinder mit 40 total genervten Eltern…

Besser ist vielleicht:
(\d)\s?(mm|cm|km|kg|tnachfolgendes Zeichen ist kein Buchstabe)
Soll heißen :Suche nach "t", dessen nächstes Zeichen kein Buchstabe ist. Das wäre dann besser für die Suche der Zeichen vor Satzzeichen (,.!?) und würde t-Wörter nicht beachten.

Kann ich leider nicht nach GREP übersetzen.


Eventuell sollte man auch auf notorische Großschreiber achten ("KG, "Kg", "kG", "T") - ich weiß nur nicht, wie ich "(?-i)" in eine solche Suchfunktion einbauen kann. :-(


als Antwort auf: [#329101]

Grep: Suche und Ersetzen von Leerzeichen

Gerald Singelmann
  
Beiträge gesamt: 6269

3. Jan 2008, 20:09
Beitrag # 8 von 34
Beitrag ID: #329144
Bewertung:
(48729 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
\W ist ein Buchstabe, der nicht in einem Wort vorkommen kann. Im Gegensatz zu \w.
Die Modifier werden einfach eingefügt. Also etwa:

Code
(?i)(\d) ?(cm|m|T\W)(?-i) 



als Antwort auf: [#329133]

Grep: Suche und Ersetzen von Leerzeichen

pixxxelschubser
Beiträge gesamt: 1708

3. Jan 2008, 21:20
Beitrag # 9 von 34
Beitrag ID: #329155
Bewertung:
(48704 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerald,

Danke so funktionierts.
\W bezieht jegliche Satzzeichen mit in die Suche ein (und noch mehr) und läßt Wörter aussen vor.

(?i) ist bei mir als ["Groß-/Kleinschreibung beachten" ein] deklariert. Hier habe ich jetzt ein Verständnisproblem.

Da der Grep-Ausdruck in Deiner Schreibweise funktioniert, bedeutet ["Groß-/Kleinschreibung beachten" ein] wahrscheinlich eher: beachte den Buchstaben - egal, ob groß oder klein und nicht wie von mir vermutet: beachte den Buchstaben nur, wenn die Groß-/Kleinschreibung übereinstimmt.
Crazy

Und nach der Schreibweise zu urteilen, haben diese Modifizierer eine Schalterfunktion (die sich InDesign vielleicht merkt???), und deshalb wird diese am Ende des Suchausdruckes wieder zurückgesetzt.

Kann ich mir das so ins Langzeitgedächtnis aufnehmen, oder stimmt das nicht so ganz?

Danke für Deine Geduld ;-)


als Antwort auf: [#329144]

Grep: Suche und Ersetzen von Leerzeichen

Gerald Singelmann
  
Beiträge gesamt: 6269

3. Jan 2008, 23:25
Beitrag # 10 von 34
Beitrag ID: #329163
Bewertung:
(48688 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Von regular-expressions.net:

Zitat /i makes the regex match case insensitive.


Alternative Erklärung: i ~ ignore case

Und -i ist das Gegenteil


als Antwort auf: [#329155]

Grep: Suche und Ersetzen von Leerzeichen

Marco Morgenthaler
Beiträge gesamt: 2474

4. Jan 2008, 12:18
Beitrag # 11 von 34
Beitrag ID: #329200
Bewertung:
(48630 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gero

Ich verstehe diesen letzten Beitrag nicht ganz. Warum plötzlich /i, um die Gross-/Kleinschreibung nicht zu beachten? Es ist doch (?i) und das Gegenteil (?-i).

Eine dritte Variante steht im Bonus-Magazin von «Dirty Tricks»: (?!) für Gross-/Kleinschreibung an, (?-!) für aus. Etwas verwirrend …

Zu deinem GREP: \W hinter t verhindert zwar das Auffinden im Satz:
2007 tummelten sich 20 tolle Kinder mit 40 total genervten Eltern, nicht aber in
2007 mümmelten sich 20 mollige Kinder mit 40 miesgelaunten Eltern ein.

Ich glaube, am einfachsten ist das Problem wieder mit einem negativen Lookahead zu lösen:
Code
(?i)(\d) ?(mm|cm|m|g|kg|t)(?!\w)(?-i) 


wobei (?!\w) ausschliesst, dass nach der Masseinheit ein Wortzeichen folgt.

Noch eine letzte Frage: (?-i) muss am Schluss stehen, sonst ist standardmässig die Gross-/Kleinschreibung in Zukunft immer an? Oder warum steht das am Schluss?

Herzliche Grüsse, Marco


als Antwort auf: [#329163]

Grep: Suche und Ersetzen von Leerzeichen

Gerald Singelmann
  
Beiträge gesamt: 6269

4. Jan 2008, 12:37
Beitrag # 12 von 34
Beitrag ID: #329203
Bewertung:
(48620 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Ich verstehe diesen letzten Beitrag nicht ganz.

Gehen wir doch mal rein empirisch vor. In diesem Satz:

Ein Aasgeier aalt sich paarweise

findet (?-i)a(?i)a nicht den Aasgeier, aber die anderen beiden.

(?i)a(?-i)a findet alle drei Stellen.

(?i)a(?-i)A findet gar nichts.

(?i) heißt also in InDesign "Groß-/Kleinschreibung ist egal".

Ich habe hier und heute grad keine Dirty Tricks vorliegen. Falls da ein Schreibfehler enthalten sein sollte, bitte ich um Verzeihung.

Zitat Ich glaube, am einfachsten ist das Problem wieder mit einem negativen Lookahead zu lösen:

Das kann man natürlich machen. Es geht aber auch, das \W einfach aus der ODER Klammer herauszuziehen und mit $3 beim Ersetzen wieder einzufügen. Das ist m.E. gehupft wie geschlumpft.

Zitat Noch eine letzte Frage: (?-i) muss am Schluss stehen, sonst ist standardmässig die Gross-/Kleinschreibung in Zukunft immer an? Oder warum steht das am Schluss?

Nein, ich bin mir selbst nicht ganz sicher, weshalb ich das oben mit reingeschrieben habe. Vielleicht um klar zu machen, dass innerhalb eines Suchbegriffs die Groß-/Kleinschreibung ein- und auch wieder ausgeschaltet werden kann.


als Antwort auf: [#329200]

Grep: Suche und Ersetzen von Leerzeichen

pixxxelschubser
Beiträge gesamt: 1708

4. Jan 2008, 13:43
Beitrag # 13 von 34
Beitrag ID: #329209
Bewertung:
(48587 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Gerald Singelmann ] /i makes the regex match case insensitive.

Alternative Erklärung: i ~ ignore case
Und -i ist das Gegenteil

"case" hat im Deutschen mindestens 25 Entsprechungen, daher fällt es mir mit meinen Schulenglischkenntnissen schwer, hier die richtige Bedeutung herauszulesen :-(

Beitrag #12 hingegen ist wieder eine der gewohnt hervorragenden deutschsprachigen "Singelmann´schen Antworten", die das Problem erschöpfend erklärt. Danke schön.
Wink

@ Marco

Danke dass Du meine Frage
Zitat Und nach der Schreibweise zu urteilen, haben diese Modifizierer eine Schalterfunktion (die sich InDesign vielleicht merkt???), und deshalb wird diese am Ende des Suchausdruckes wieder zurückgesetzt.
Kann ich mir das so ins Langzeitgedächtnis aufnehmen, oder stimmt das nicht so ganz?

noch einmal in ein verständliches Deutsch übersetzt hast. *ggg*

Deine Antwort mit dem negativen Lookahead wäre übrigens meine nächste Frage gewesen. Es gibt ja nicht nur "t" sondern auch "g", "m", "l" … und auch "ar", "ha", etc. die hier zu Problemen führen würden. Schön, dass Deine Kristallkugel wieder funktioniert.
Sly


als Antwort auf: [#329163]

Grep: Suche und Ersetzen von Leerzeichen

Kai Rübsamen
  
Beiträge gesamt: 4684

4. Jan 2008, 14:33
Beitrag # 14 von 34
Beitrag ID: #329223
Bewertung:
(48569 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
zum weiterdenken: Wie müsste der GREP lauten, wenn man Zahl u. Maßeinheit z.B. zusätzlich auszeichnen möchte?

(\d+)\s?(?i)(mm|cm|m|g|kg|t)(?!\w)

Mit Geralds Ansatz würde hier auch ein Punkt nach der Maßeinheit gefunden. Marcos Variante erscheint mir als Grep-Anfänger daher auch bei dem ersten Beispiel einleuchtender, da hier nur die Maßeinheit u. nix dahinter gefunden wird.

zu (?i) :
aus dem Shortcut von Peter: Remember that GREP is case-sensitive by default, so to replace case-insensitively, add (?i) before the expression.

>> den Endtag braucht es wohl nicht, sondern es ist vielmehr eine gemischte Suche möglich, wie es Gerald oben beschrieben hat.
>> die Übersetzung in Indesign mit "Groß-/Kleinschreibung beachten ein" verstehe ich trotzdem nicht, da sie auch bei mir genau das Gegenteil von dem bewirkt, was ich erwarte!


als Antwort auf: [#329209]

Grep: Suche und Ersetzen von Leerzeichen

Gerald Singelmann
  
Beiträge gesamt: 6269

4. Jan 2008, 15:04
Beitrag # 15 von 34
Beitrag ID: #329226
Bewertung:
(48553 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das ist einfach ein Übersetzungsfehler. In der Hilfe ist es interessanterweise korrekt: http://help.adobe.com/...5E-FA5A176FDC9F.html


als Antwort auf: [#329223]
X