Kommentteja perlre suomennukseen.
Jarkko Hietaniemi
jhi at iki.fi
Mon May 3 06:59:55 CDT 1999
> Olisihan se hienoa, jos vähän saataisiin noita käännettyä. Onko kukaan muu
> tehnyt mitään?
Ei ehdi... :-(
Suosittelen käännösten lukemista ääneen tai edes itselleen mutisten.
Näin huomaa kökköydet nopeasti. Erittäin tärkeää on ettei käännä
tekstiä vaan ajatusta. Englannissa on usein ihan "turhia" sanoja ja
sanaryppäitä jotka suomessa kääntyvät jollain yhdellä nasevalla
sanalla, esimerkiksi verbijohdoksella. Usein myös voi aivan hyvällä
omallatunnolla jättää sanoja kokonaan pois.
> NIMI
> perlre - Perlin säännölliset lausekkeet
>
> KUVAUS
> Tämä sivu kuvaa perlin säännöllisten lausekkeiden syntaksin. Jos
... Perlin kieliopin. (vrt. Pascalin, Javan).
> haluat tietää kuinka säännöllisiä lausekkeita käytetään sovittamis
sovitusoperaatiossa
> operaatiossa, sekä esimerkkejä samasta, katso m// ja s/// perlop
Koko "sekä .. samasta" voi minusta poistaa.
> manuaalisivuilta.
>
> Sovitus operaatiolla voi olla useanlaisia muuntimia. Muuntimet,
Sovitusoperaatiolla ... useita erilaisia ...
> jotka liittyvät säännöllisten lausekkeiden tulkkaamiseen on listattu
... säännöllisiin lausekkeisiin ...
Ei sana-sanalta käännöksiä, eikä substantiivihirviöitä.
> alla. Muuntimet, jotka muuntavat operaation luonnetta, katso
> m// osio perlop man-sivuilta ja s// samasta paikasta.
muuntimet .. muuntavat ... Toistoa. Muunnin sinänsä on hyvä sana.
Enemmän muuntimista perlop:in kohdissa m// ja s//.
> i Tee sovitus kirjaisimen koosta välittämättä
>
> Jos use locale on voimassa, kirjasinkartta otetaan
> silloisesta ympäristöstä. Katso perllocale man-sivut.
>
> m Käsittele merkkijonoa useina riveinä. Se on, muuta "^"
"Se on"??? Yöks. :-)
> ja "$" osumasta merkkijonon loppuun tai alkuun osumaan
Osua? Kuka ampuu? Ehkä vain pitäisi yrittää johdonmukaisesti "sopia"
(vaikka tällä onkin harmillinen kaksoismerkitys, fyysinen ja looginen...).
> tämän sijasta alkamaan sovittamisen minkä tahansa
> merkkijonon alusta tai lopusta.
m Käsittelele merkkijonoa useina riveinä, eli "^" ja "$"
sopivat myös merkkijonon sisäisiin rivinvaihtoihin
(eikä vain merkkijonon alkuun ja loppuun).
Käännä ajatus, älä lausetta.
> s Käsittele merkkijonoa yhtenä rivinä. Se on, muuta "."
> osumaan mihin tahansa merkkiin ikinä, jopa rivinvaihto-
Argh. Ei "se ole".
s Käsittele merkkijonoa yhtenä rivinä, eli "." sopii
mihin tahansa merkkiin, jopa rivinvaihtoon, johon.
se ei yleensä osuisi.
> merkkiin, johon se ei yleensä osuisi.
>
> x Väljennä jonosi sovitusehtoja hyväksymällä välilyönnit
jonosi? Tarkoitat merkkijonosi--mutta parempi jättää kokonaan pois.
> ja kommentit.
>
> Nämä kirjoitetaan yleensä "/x muunnin", vaikka erotin ei aina
> ole kauttaviiva. Itse asiassa, mikä tahansa näistä muuntimista
Kaikista muuntimista puhutaan yleensä termillä "/x-muunnin",
esimerkikiksi "/i-muunnin". Huomaa myös että erotin voi
olla muukin merkki kuin kauttaviiva.
> voi olla sulautettuna säännälliseen lausekkeeseen itseensä
> käyttäen uutta (?...) rakennetta. Katso alla.
Hmmm. Kaikki viittaukset "uusiin" rakenteisiin ovat hieman hassuja
suomenkielisessä versiossa sillä meillä ei ole "vanhaa" dokumentaatiota
koskaan ollutkaan. (Sama tietysti pätee "vanhoihin" piirteisiin.)
> /x muunnin itse tarvitsee hieman lisää selitystä. Se kertoo
Varsinainen /x-muunnin
> säännöölisten lausekkeiden sovitus-koneelle olla ottamatta
sovittimelle
> huomioon välilyöntejä, jotka eivät ole kenoviivojen välissä
vinoviivojen
> eivätkä merkkijonon sisällä. Voit käyttää tätä säännöllisten
> lausekkeitesi rikkomiseen (hieman) luettavampaan muotoon.
jakamiseen
> # merkkiä käsitellään myös meta-merkkinä aloittamassa kommentin,
#-merkkiä käytetään myös kommentin aloitusmerkkinä, kuten normaalissa
Perl-koodissa.
> kuten normaalissa Perl koodissa. Tämä tarkoittaa myös, että jos
> etsit merkkijonosta välilyöntiä tai #-merkkiä, sinun täytyy
> joko tehdä 'escape' merkki niiden eteen tai koodata escape
> käyttäen oktaali- tai heksajärjestelmää. Yhteenvetona voidaan
Tämä tarkoittaa muun muassa sitä että jos etsit merkkijonosta
välilyöntiä tai #-merkkiä, sinun täytyy suojata ne eteenlaitetulla
'\'-merkillä tai koodata ne käyttäen oktaali- tai heksamerkintöjä.
"Escape" voi olla joko suojaamista tai peittämistä.
> sanoa, että nämä ominaisuudet tekevät Perlin säännöllisistä
> lausekkeista huomattavasti luettavampia. Katso C:n kommentin
C-kommentin
> poistokoodi perlop man-sivuilta.
poistoesimerkki
>
>
> 18/Apr/99 perl 5.004_02 1
>
>
>
> PERLRE(1) Perl ohjelmoijan viiteteos PERLRE(1)
>
> Säännölliset lausekkeet
>
> Merkkijonot, joita käytetään merkintunnistukseen ovat säännöllisiä
s/merkintunnistukseen/hahmonsovitukseen/g
> lausekkeita kuten ne, jotka toimitettiin säännölliste lausekkeiden
> versiossa 8. (Itseasiassa, rutiinit on johdettu (kaukaisesti)
> Hanry Steinerin vapaasti jaettavasta uudelleen toteutetusta
Mitäh? Henry Spencerin.
> V8 rutiini joukosta.) Katso osio Version 8 Regular Expressions
> yksityiskohtia varten.
Apua.
Hahmonsovituksessa käytettäviä säännöllisiä lausekkeita merkitään
kielellä joka on peräisin UNIX Research Version 8 -jakelusta.
Itseasiassa Perlin säännöllisten lausekkeiden rutiinit ovat
etäistä sukua Henry Spencerin vapaasti jaettavasta V8:an
säännöllisten lausekkeiden toteutukselle.
> Erityisesti seuraaville meta-merkeillä on vakioidut egrep
"Meta" on sana joka tulee kävelemään vielä monesti vastaan, ja
käännetään vähän joka paikassa hieman eri lailla.... tässä ehkä
näin:
Merkinnät ovat:
(huomionarvoista on kuinka paljon *lyhyemmin* suomeksi saa asiat sanottua)
> tarkoituksensa:
>
> \ Kommentoin seuraava metamerkki
> ^ Sovita rivin alusta lähtien
> . Hyväksy mikä tahansa merkki (lukuunottamatta
> rivinvaihto)
> $ Sovita rivin lopusta alkaen (tai ennen rivinvaihtoa
> lopussa)
> | Muuntomerkki
> () Ryhmittely
> [] Merkkiluokka
\ peitä seuraava merkintä
^ sovi merkkijono alussa
. sovi mihin tahansa merkkiin paitsi rivinvaihtoon
$ sovi merkkijonon tai rivin loppuun
| vaihtelumerkki
() ryhmittely
[] merkkiluokka
> Vakiona "^" merkki on taatusti yrittää sovittaa vain merkkijonon
Auh.
Tavallisesti ^-merkki sopii vain merkkijonon alkuun, $-merkki
loppuun (joko merkkijonon tai rivin, juuri ennen rivinvaihtoa),
ja Perl tekee tiettyjä optimointeja sillä oletuksella että
merkkijono on vain yhden rivin mittainen.
> alussa, "$" merkki lopussa (tai ennen rivinvaihtoa lopussa) ja
> Perl tekee tiettyjä optimointeja oletuksella, että merkkijono
> käsittää vain yhden rivin. Sulautettuja rivinvaihtoja ei soviteta
> "^" tai "$" avulla. Voit kuitenkin toivoa käsitteleväsi
Toivoa? Eieieiei. Onko Babelin kala ollut käytössä? :-)
Merkkijonon sisäisiä rivinvaihtoja ei siis voi tavallisesti
sovittaa ^- ja $-merkeillä,
> merkkijonoja monirivisenä puskurina niin että "^" sovittaa minkä-
> tahansa rivinvaihdon jälkeen, ja "$" rivinvaihtoa ennen. Pienen
> ylimääräisen työn avulla voit tehdä tämän käyttääen /m muunninta
> sovittamis-operaatiossa. (Vanhemmat ohjelmat tekivät tämän
> asettamalla $*, mutta tämä käytäntö on muuttunut (vanhat
> ohjelmat menevät kuitenkin tulkista läpi).
mutta /m-muuntimella voit sovittaa ^-merkinnän minkä tahansa
rivinvaihdon jälkeen ja $-merkinnän ennen mitä tahansa rivinvaihtoa.
(Aikaisemmin tämä tehtiin $*-muuttujaa käyttäen mutta tätä ei enää
suositella.)
>
> Hyödyntääksesi monirivisiä korvaus-operaatiota, "." merkki ei
> ikinä sovita rivinvaihtoa ellet käytä /s muunninta, joka käskee
/s-muunninta
> Perlin tulkita merkkijono yksirivisenä vaikka se ei olisikaan.
... vaikkei se...
> /s muunnin on voimakkaampi kuin $* tapauksessa että sinulla
/s-muunnin
> on (huonosti käyttäytyvää) vanhaa koodia, joka määrittää sen toi-
> sesta moduulista käsin.
...joka käyttää $*-muuttujaa toisesta modulista käsin.
> Seuraavat standardoidut kvantifioijat ovat tunnettuja:
Lausekkeissa käytetään seuraavia toistomääreitä:
> * Osu 0 tai useamman kerran
> + Osu 1 tai useamman kerran
> ? Osu 1 tai 0 kertaa
> {n} Osu tarkalleen n kertaa
> {n,} Osu vähintään n kertaa
> {n,m} Osu vähintään n mutta ei enempää kuin m kertaa
* Sovi ei lainkaan tai useammin
+ Sovi yhden tai useamman kerran
? Sovi ei lainkaan tai kerran
{n} Sovi n kertaa
{n,} Sovi vähintään n kertaa
{n,m} Sovi vähintään n muttei enemmän kuin m kertaa
> (Jos aaltosulkua käytetään muussa yhteydessä, sitä käsitellään
> tavallisena merkkinä.) "*" muunnin on vastaava kuin {0,}, "+"
*-toistomääre
> muunnin kuin {1,}, ja "?" muunnin kuin {0,1}. n ja m ovat
> rajoitetut vakioarvoihin, jotka ovat pienempiä kuin 65536.
n ja m voivat olla korkeintaan 65536.
> 19/Apr/99 perl 5.004_02 2
>
>
>
>
> PERLRE(1) Perl ohjelmoijan viiteteos PERLRE(1)
>
>
> Oletuksena, kvantifioija alijono on "ahne", se on, se sovittaa
Oletuksena toisto on "ahne", se sovittaa niin monta kertaa
kuin mahdollista, tosin sallien säännöllisen lausekkeen lopun
myös sopia.
> niin monta kertaa kuin mahdollista (annetusta aloituskohdasta)
> samalla sallien loppujen käskyjen myös sovittaa. Jos haluat
> sovittaa mandollisimman vähäisen määrän, lisää kvantifioian
mahdollisimman vähän ("saidasti"), lisää toistomääreen
perään "?"
> perään "?". Huomaa että merkitys ei muutu, vain "ahneus":
>
> *? Osu 0 tai useamman kerran
> +? Osu 1 tai useamman kerran
> ?? Osu 1 tai 0 kertaa
> {n}? Osu tarkalleen n kertaa
> {n,}? Osu vähintään n kertaa
> {n,m}? Osu vähintään n mutta ei enempää kuin m kertaa
s/osu/sovi/
> Koska merkkijonoa sovitaan kuin lainausmerkeissä olevia merkkejä,
sovitetaan
> seuraava toimii myös:
myös seuraavat merkinnät käyvät:
> \t tabulaatori (HT, TAB)
> \n rivinvaihto (LF, NL)
> \r return (CR)
> \f form feed (FF)
> \a piippaus (BEL)
> \e escape (vrt. troff) (ESC)
> \033 oktaali-merkki (vrt. PDP-11)
> \x1B heksa-merkki
> \c[ kontrolli-merkki
> \l alenna kirjasin (vrt. vi)
> \u ylennä kirjasin (vrt. vi)
> \L alennas kunnes \E (vrt. vi)
> \U ylennä kunnes \E (vrt. vi)
> \E loppu kirjasimen muunnin (vrt. vi)
> \Q kommentoi säännöllisten lausekkeiden meta-merkit
> kunner \E
>
> Jos use locale on käytössä, merkkikartta jota \I, \L, \u ja
"use locale"
> <\U> käyttävät on otettu kulloisestakin ympäristöstä. Katso
käyttävät riippuu ympäristöstä.
> perllocale mansivut.
>
> Lisäksi, Perl määrittää seuraavat:
>
> \w Sovita "sana" merkit (numerot ja "_")
> \W Sovita ei-sana merkit
> \s Sovita välilyöntimerkit
> \S Sovita ei-välilyöntimerkit
> \d Sovita numeromerkit
> \D Sovita ei-numeromerkit.
\w sovi sanamerkkeihin (kirjaimet, numerot, ja "_")
...
Minusta regex-merkintä "sopii" ja käyttäjä "sovittaa".
> Huomaa että \w sovittaa yksittäiset kirjainnumeeriset merkit, ei
... sopii yksittäisiin sanamerkkeihin, ei koko sanaa.
> koko sanaa. Sovittaaksesi sanan sinun täyty sanoa \w+. Jos
> use locale on käytössä, lista aakkosista jotaka \w on generoinut
> on käytössä silloisesta ympäristöstä.
lista kirjaimista joihin \w sopii riippuu ympäristöstä.
>
> KÄÄNTÄJÄ
> Jukka Juslin <jtjuslin at cc.hut.fi>
--
$jhi++; # http://www.iki.fi/jhi/
# There is this special biologist word we use for 'stable'.
# It is 'dead'. -- Jack Cohen
More information about the Helsinki-pm
mailing list