hilfdirselbst.ch
Facebook Twitter gamper-media
« « 1 2 » »  
Trixi68
Beiträge: 7
15. Feb 2017, 14:22
Beitrag #1 von 17
Bewertung:
(2156 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Grep: Text zwischen einem Viertelgeviert und einem weiteren Viertelgeviert und nachfolgendem Strich auf "kein Umbruch" setzten


Liebe InDesign-Profis,

wie gerade beschrieben möchte ich zwischen einem Viertelgeviert und einem weiteren Viertelgeviert und nachfolgendem Strich den Text auf auf "kein Umbruch" setzten.

z.B.:
100-me Blabla Ltd. | 1-5 Firma | Tolle 100% Inc. | 21TORR |

Also vor und nach dem senkrechten Strich steht ein Viertelgeviert. Der Text nach dem Strich (inkl. Viertelgeviert) bis einschließlich nächsten Strich soll auf "kein Umbruch" gesetzt werden.

Test:
~4.+~4|
und dann Format ersezten: kein Umbruch
funktioniert leider nicht.

Kann mir da jemand vielleicht auf die Sprünge helfen?

LG Trixi
Top
 
X
MarioF p
Beiträge: 60
15. Feb 2017, 18:59
Beitrag #2 von 17
Beitrag ID: #555642
Bewertung:
(2097 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Grep: Text zwischen einem Viertelgeviert und einem weiteren Viertelgeviert und nachfolgendem Strich auf "kein Umbruch" setzten


Was funktioniert denn nicht?
Hast Du es über S&E gemacht oder als GREP-Stil angelegt?
Viele Grüße
Mario
als Antwort auf: [#555626] Top
 
Ralf Hobirk p
Beiträge: 5686
15. Feb 2017, 20:21
Beitrag #3 von 17
Beitrag ID: #555645
Bewertung:
(2078 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Grep: Text zwischen einem Viertelgeviert und einem weiteren Viertelgeviert und nachfolgendem Strich auf "kein Umbruch" setzten


Hi Trixi,

ob S&E oder GREP-Stil spielt keine Rolle. Aber du hast auf jeden Fall zwei Fehler im GREP:

1. Must du bei dem ".+" die kürzeste Entsprechung festlegen, also ".+?".

2. Muss der Strich (Pipe) escaped werden, weil er ein von GREP reserviertes Zeichen ist.

Hier der komplette GREP:

Code
~4.+?~4\| 


Ich konnte ihn jetzt nicht testen, deshalb melde dich bitte, wenn er nicht funktionieren sollte ;-)

---
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: [#555626] Top
 
Trixi68
Beiträge: 7
16. Feb 2017, 09:42
Beitrag #4 von 17
Beitrag ID: #555663
Bewertung:
(1956 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Grep: Text zwischen einem Viertelgeviert und einem weiteren Viertelgeviert und nachfolgendem Strich auf "kein Umbruch" setzten


Hallo Ralf,

ich habe über grep gearbeitet,
leider findet er keine Übereinstimmung.
Was ist (Pipe) escaped? Liegt bestimmt daran.

Warum muss ich noch die kürzeste Entsprechung festlegen, wenn ich doch mit dem + schon ein oder mehrere Male sage?

LG Trixi
als Antwort auf: [#555645] Top
 
MarioF p
Beiträge: 60
16. Feb 2017, 10:12
Beitrag #5 von 17
Beitrag ID: #555664
Bewertung:
(1945 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Grep: Text zwischen einem Viertelgeviert und einem weiteren Viertelgeviert und nachfolgendem Strich auf "kein Umbruch" setzten


Antwort auf [ Ralf Hobirk ] ob S&E oder GREP-Stil spielt keine Rolle.

Stimmt natürlich...
Antwort auf [ Trixi68 ] ich habe über grep gearbeitet,
leider findet er keine Übereinstimmung.

Sollte eigentlich klappen. Sind denn auch wirklich Viertelgeviert drin?
Viele Grüße
Mario
als Antwort auf: [#555645] Top

Anhang:
grep.JPG (62.4 KB)
 
Ralf Hobirk p
Beiträge: 5686
16. Feb 2017, 13:22
Beitrag #6 von 17
Beitrag ID: #555677
Bewertung:
(1876 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Grep: Text zwischen einem Viertelgeviert und einem weiteren Viertelgeviert und nachfolgendem Strich auf "kein Umbruch" setzten


Hi Trixi,

Antwort auf: Was ist (Pipe) escaped?

Die "Pipe" ist der senkrechte Strich den du meinst. Ich weiß nicht, wie man ihn auf Deutsch korrekt nennt ;-)

Alle Zeichen, die in GREP eine besondere Funktion haben, müssen mit einem Backslash "escaped" werden. Das gilt z. B. für den Punkt, =, ?, (, ), [, ], / oder |. Der Punkt (.) steht für ein beliebiges Zeichen. wenn du jedoch wirklich einen Punkt finden möchtest, muss es "\." heißen.

Antwort auf: Warum muss ich noch die kürzeste Entsprechung festlegen


Ausgehend von deiner Beschreibung gehe ich davon aus, dass du bei deinem Beispiel
Zitat 100-me Blabla Ltd. | 1-5 Firma | Tolle 100% Inc. | 21TORR |

z. B. " 1-5 Firma |" und " Tolle 100% Inc. |"erwischen willst, nicht aber zusammenhängend " | 1-5 Firma | Tolle 100% Inc. |".
Die "kürzeste Entsprechung" bewirkt, das GREP nur den Text bis zum ersten Vorkommen der Pipe erwischt und nicht bis zur letzten Pipe im Absatz.

Sieh dir mal die Screenshots im Anhang an, die ich zu einem PDF zusammengebaut habe.

Ansonsten auch nochmal der Hinweis von Mario, ob du wirklich Viertelgevierte im Text hast oder eventuell ein anderes Leerzeichen.

---
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: [#555663] Top

Anhang:
 
Trixi68
Beiträge: 7
17. Feb 2017, 11:59
Beitrag #7 von 17
Beitrag ID: #555700
Bewertung:
(1763 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Grep: Text zwischen einem Viertelgeviert und einem weiteren Viertelgeviert und nachfolgendem Strich auf "kein Umbruch" setzten


Hat leider nicht funktioniert, vielleicht wegen der Viertelgevierte. Hab es jetzt händisch gemacht und beschäftige mich in einer ruhigen Minute noch einmal damit.
Trotzdem vielen Dank, hilft mir auch als Ansatz weiter.

LG Trixi
als Antwort auf: [#555677] Top
 
NEU!
Beiträge: 156
17. Feb 2017, 16:58
Beitrag #8 von 17
Beitrag ID: #555712
Bewertung:
(1708 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Grep: Text zwischen einem Viertelgeviert und einem weiteren Viertelgeviert und nachfolgendem Strich auf "kein Umbruch" setzten


Wie wärs hiermit:

(?<=\|).+?(?=\|)

Pfeiff auf die Gevierts, und nimm die Pipe als Kriterium.
als Antwort auf: [#555700]
(Dieser Beitrag wurde von NEU! am 17. Feb 2017, 17:00 geändert)
Top
 
Ralf Hobirk p
Beiträge: 5686
17. Feb 2017, 17:37
Beitrag #9 von 17
Beitrag ID: #555717
Bewertung:
(1694 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Grep: Text zwischen einem Viertelgeviert und einem weiteren Viertelgeviert und nachfolgendem Strich auf "kein Umbruch" setzten


Müsste eigentlich passen ;-)

Trixi möchte aber die Pipe am Ende mit einschließen. Das hier sollte es dementsprechend tun:

Code
(?<=\|).+?\| 


---
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: [#555712] Top
 
Trixi68
Beiträge: 7
20. Feb 2017, 06:28
Beitrag #10 von 17
Beitrag ID: #555744
Bewertung:
(1539 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Grep: Text zwischen einem Viertelgeviert und einem weiteren Viertelgeviert und nachfolgendem Strich auf "kein Umbruch" setzten


komisch der
(?<=\|).+?(?=\|)
klappt ganz gut, ausser das die Pipe nicht mit eingeschlossen wird

bei
(?<=\|).+?\|
wird zwar die Pipe mit eingeschlossen, aber wenn Sonderzeichen wie % oder ., vorkommen, findet er es nicht.

Ist doch aber der gleiche Suchbegriff .+? oder?

LG Trixi
als Antwort auf: [#555717] Top
 
Martin Fischer  M  p
Beiträge: 11717
20. Feb 2017, 09:07
Beitrag #11 von 17
Beitrag ID: #555746
Bewertung:
(1515 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Grep: Text zwischen einem Viertelgeviert und einem weiteren Viertelgeviert und nachfolgendem Strich auf "kein Umbruch" setzten


Das liegt vermutlich weniger an den Sonderzeichen, sondern daran, dass in einer Kolonne jede zweite von Dir gewünschte Sequenz übersprungen wird.

Nimm statt
Code
100-me Blabla Ltd. | 1-5 Firma | Tolle 100% Inc. | 21TORR | 


mal
Code
100-me Blabla Ltd. | 1-5 Firma | 1-5 Firma | Tolle 100% Inc. | 21TORR | 


Bei Deinem ersten Ausdruck ist die nachfolgende Pipe (lookahead) nicht Teil des gefundenen Strings. Deswegen kann GREP hier gleich weitermachen.

Bei Deinem zweiten Ausdruck ist die Pipe Teil des gefundenen Strings. Der nächste Treffer beginnt erst ab der nächsten Pipe.
Oder anders ausgedrückt: Die letzte Pipe des ersten Treffers kann nicht Teil des zweiten Treffers sein.

Viele Grüße
Martin
als Antwort auf: [#555744] Top
 
Trixi68
Beiträge: 7
20. Feb 2017, 09:30
Beitrag #12 von 17
Beitrag ID: #555747
Bewertung:
(1499 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Grep: Text zwischen einem Viertelgeviert und einem weiteren Viertelgeviert und nachfolgendem Strich auf "kein Umbruch" setzten


Hallo Martin,

grundsätzlich soll der Treffer mit dem Viertelgeviert beginnen und bis zur nächsten Pipe gehen. Sodass höchstens der aller erste Begriff (von ca. 2000) nicht gefunden wird.

LG Trixi
als Antwort auf: [#555746] Top
 
Martin Fischer  M  p
Beiträge: 11717
20. Feb 2017, 10:16
Beitrag #13 von 17
Beitrag ID: #555751
Bewertung:
(1458 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Grep: Text zwischen einem Viertelgeviert und einem weiteren Viertelgeviert und nachfolgendem Strich auf "kein Umbruch" setzten


Antwort auf [ Trixi68 ] grundsätzlich soll der Treffer mit dem Viertelgeviert beginnen und bis zur nächsten Pipe gehen.


Versuch's mal damit:
Code
~4[^~4]+~4\| 


oder, wenn das erste Viertelgeviert nicht dabei sein soll:
Code
(?<=~4)[^~4]+~4\| 


Viele Grüße
Martin
als Antwort auf: [#555747]
(Dieser Beitrag wurde von Martin Fischer am 20. Feb 2017, 10:18 geändert)
Top
 
NEU!
Beiträge: 156
20. Feb 2017, 10:29
Beitrag #14 von 17
Beitrag ID: #555753
Bewertung:
(1449 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Grep: Text zwischen einem Viertelgeviert und einem weiteren Viertelgeviert und nachfolgendem Strich auf "kein Umbruch" setzten


Ich hab auch noch was Funktionierendes erdacht, erwischt auch den ersten ohne Pipe.

~4?.+?~4\|

Ich kanns ja ohne Screenshot nicht visualisieren, aber
100-me Blabla Ltd.#|#1-5 Firma#|#1-5 Firma#|#Tolle 100% Inc.#|#21TORR#|P

# = ~4 = VGeviert
P = Absatzmarke
als Antwort auf: [#555751] Top
 
Trixi68
Beiträge: 7
22. Feb 2017, 14:36
Beitrag #15 von 17
Beitrag ID: #555802
Bewertung:
(1241 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Grep: Text zwischen einem Viertelgeviert und einem weiteren Viertelgeviert und nachfolgendem Strich auf "kein Umbruch" setzten


Hallo Martin,

ja wenn der Meister antwortet klappt das auch :-)

~4[^~4]+~4\| hat super funktioniert

Nur noch mal zum Verstehen:

er sucht nach einem "Viertelgeviert" und dann? "bis einschließlich nächstem Viertelgeviert" und "Pipe"

Verstehe ich nicht ganz, kannst du mir das noch erklären?

LG Trixi
als Antwort auf: [#555751] Top
 
« « 1 2 » »  
X