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
>> 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.
> 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 ;)
> 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+)
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 :>
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}
>> 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 [...]"