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