Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

InDesign GREP

512 views
Skip to first unread message

Mariusz

unread,
Mar 11, 2010, 11:27:11 AM3/11/10
to
Czy można ustawić znajdowanie i zamianę GREPEM wyrażenia np. "H.
Kowalski" (dowolna duża litera z kropką + spacja + nazwisko z dużej
litery) żeby zamieniał zwykłą spację na jedną szóstą lub jedną czwartą
firetu.
Mariusz

InDesign Scripts

unread,
Mar 11, 2010, 11:59:39 AM3/11/10
to

szukasz - "(.\.)( )(.+)"

zamieniasz na - "$1#$3"

zamiast # musisz wstawić kod spacji którą chcesz mieć

ew. inna postać szukanego ciągu - "(.\.)( )(\w+)"

robin

--
Skrypty do AdobeFamily
www.adobescripts.pl
gg 3753393
tlen robinet
Skype: AdobeScripts

Mariusz

unread,
Mar 11, 2010, 12:02:57 PM3/11/10
to
wielkie dzięki

Marek Włodarz

unread,
Mar 11, 2010, 1:51:37 PM3/11/10
to
W artykule <hnb7hs$gik$1...@inews.gazeta.pl>
InDesign Scripts napisał(a):

>> Czy można ustawić znajdowanie i zamianę GREPEM wyrażenia np. "H.
>> Kowalski" (dowolna duża litera z kropką + spacja + nazwisko z dużej
>> litery) żeby zamieniał zwykłą spację na jedną szóstą lub jedną czwartą
>> firetu.
>
> szukasz - "(.\.)( )(.+)"

Poprawka:
szukasz (\<\u\.) (.+)

Bo chcesz znaleźć jednoliterowe słowo z kropką po nim, w dodatku
wielką literą...

Tamta regułka znalazłaby każdy koniec zdania!

A środkowy nawias jest zbędny.

> zamieniasz na - "$1#$3"

Po poprawce (usunięciu środkowego nawiasu) zamieniasz na $1#$2, gdzie
# zastępujesz kodem wstawianej spacji. Np. na "ćwiartkową" to będzie
$1~4$2.

Pozdrawiam,
Marek W.
--
FAQ grupy pl.comp.dtp: http://dtp.art.pl/
Lista mirrorów: http://emide.neostrada.pl
"Nie pracuje dobrze ten, kto z zamiarem wykonania łopaty buduje rakietę."
Stanisław Lem.

InDesign Scripts

unread,
Mar 11, 2010, 2:20:58 PM3/11/10
to
> Poprawka:
> szukasz (\<\u\.) (.+)

> Po poprawce (usunięciu środkowego nawiasu) zamieniasz na $1#$2, gdzie


> # zastępujesz kodem wstawianej spacji. Np. na "ćwiartkową" to będzie
> $1~4$2.

pisalem z pamieci na czuja ;)

robson.z.pracy

unread,
Mar 12, 2010, 1:36:55 AM3/12/10
to
Dnia 11-03-2010 o 19:51:37 Marek Włodarz
<mar...@nospam.venus.ci.uw.edu.pl> napisał(a):

> W artykule <hnb7hs$gik$1...@inews.gazeta.pl>
> InDesign Scripts napisał(a):
>
>>> Czy można ustawić znajdowanie i zamianę GREPEM wyrażenia np. "H.
>>> Kowalski" (dowolna duża litera z kropką + spacja + nazwisko z dużej
>>> litery) żeby zamieniał zwykłą spację na jedną szóstą lub jedną czwartą
>>> firetu.
>>
>> szukasz - "(.\.)( )(.+)"
>
> Poprawka:
> szukasz (\<\u\.) (.+)
>

A nie tak?
(\<\u\.) (\u\l+)

Mariusz

unread,
Mar 12, 2010, 4:17:26 AM3/12/10
to
Dzięki wszystkim za pomoc. Udało mi się do pracować wyrażenie do
postaci
znajdź: "(\<\u\.) (\u)"
zamień: "$1#$2" (# - rodzaj odstępu)

Marek Włodarz

unread,
Mar 12, 2010, 10:23:59 AM3/12/10
to
W artykule <op.u9fzb...@d0000291.wspol.edu.int>
robson.z.pracy napisał(a):

To wzmacnianie warunku - niby że kolejna litera też ma być wielka.
Gorzej - ten warunek pominie przypadek, gdy ktoś ma dwa inicjały
(sekwencja typu A. B. Celiński - warunek nie złapie tego A.)

Co więcej, niczego to pozytywnego nie wnosi, bo po kropce (jeśli
miałaby ona inny sens, np. końca zdania) i tak będziemy mieli wielką
literę - zatem i tak złapie, i tak. Osobiście nie znam sposobu
wyszukania _tylko_ nazwisk. Bo na przykład każdy z proponowanych
wariantów złapie takie wyrażenie:

"[...] udał się do wyjścia B. Po drugiej stronie [...]"

Tu pewnie nie chcielibyśmy tej specjalnej spacji, ale ja nie widzę
sposobu wyeliminowania takich przypadków.

Oznacza to, że w zasadzie możemy zignorować to, co jest _po_ naszej
spacji. Poza tym można dodatkowo uprościć całe wyrażenie, stosując
składnę "Look Behind":

Find: "(?<=\<\u\.) "

Ująłem w cudzysłów, żeby pokazać tę spację na końcu - to jej właśnie
szukamy i jest ona jedynym "zaznaczanym" tekstem. Oznacza to, że
uprości się zawartość Change to - będzie zawierać tylko metaznak
wstawianej spacji. Ale oczywiście ta metoda również nie pozwoli
wyeliminować przypadków takich, jak pokazałem wcześniej.

Po prostu musimy pogodzić się z tym, że automatów doskonałych nie ma
i nie będzie. A ściślej, powinniśmy się z tego cieszyć, bo gdyby takie
automaty istniały, my stalibyśmy się zbędni :>

InDesign Scripts

unread,
Mar 12, 2010, 12:24:35 PM3/12/10
to
> Bo na przykład każdy z proponowanych
> wariantów złapie takie wyrażenie:
>
> "[...] udał się do wyjścia B. Po drugiej stronie [...]"
>
> Tu pewnie nie chcielibyśmy tej specjalnej spacji, ale ja nie widzę
> sposobu wyeliminowania takich przypadków.

a "ograniczenie" na minimalną ilość znaków w drugiej części wyrażenia - {3,} ?
bo w polskim chyba niezbyt często trafiają się tak krótkie nazwiska ...
jeżeli istnieje takie zagrożenie - to wtedy można puścić "odwrotne" wyrażenie wyszukujące - {1,2}

Marek Włodarz

unread,
Mar 12, 2010, 12:31:10 PM3/12/10
to
W artykule <hndtcl$bd2$1...@inews.gazeta.pl>
InDesign Scripts napisał(a):

>> Bo na przykład każdy z proponowanych
>> wariantów złapie takie wyrażenie:
>>
>> "[...] udał się do wyjścia B. Po drugiej stronie [...]"
>>
>> Tu pewnie nie chcielibyśmy tej specjalnej spacji, ale ja nie widzę
>> sposobu wyeliminowania takich przypadków.
>
> a "ograniczenie" na minimalną ilość znaków w drugiej części wyrażenia - {3,} ?
> bo w polskim chyba niezbyt często trafiają się tak krótkie nazwiska ...
> jeżeli istnieje takie zagrożenie - to wtedy można puścić "odwrotne" wyrażenie wyszukujące - {1,2}

I co to da? Proszę bardzo, mała modyfikacja mojego przykładu:

"[...] udał się do wyjścia B. Przeszedłszy przez drzwi [...]"

0 new messages