Kirjoittaja: Antti Laaksonen
Tarkastellaan merkkijonoja, jotka muodostuvat kirjaimista A
–Z
. Seuraava säännöllinen lauseke hyväksyy kaikki merkkijonot, jotka sisältävät sanan KORONKORKO
.
[A-Z]*KORONKORKO[A-Z]*
Ensin merkkijonossa saa siis olla vapaasti mitä tahansa kirjaimia, sitten jossain vaiheessa täytyy tulla haluttu KORONKORKO
ja lopuksi saa taas olla vapaasti mitä tahansa kirjaimia.
Säännöllinen lauseke hyväksyy mm. merkkijonot ABCKORONKORKOABC
, KORONKORONKORKORKO
ja KORONKORKORONKORKO
. Vastaavasti säännöllinen lauseke hylkää mm. merkkijonot PUTKAPOSTI
, KORONKORKKI
ja KORONABCKORKO
.
Suunnittele uusi säännöllinen lauseke, joka toimii juuri päinvastoin. Sen täytyy hyväksyä kaikki merkkijonot, joissa ei esiinny missään kohdassa sanaa KORONKORKO
.
Voit käyttää säännöllisessä lausekkeessa seuraavia merkkejä: A
–Z
(kirjaimet), [
, ]
, -
ja ^
(merkkiryhmä), ?
, *
ja +
(merkkien toisto), |
(vaihtoehto) sekä (
ja )
(ryhmitys).
Mitä lyhyemmän säännöllisen lausekkeen onnistut muodostamaan, sen parempi!
Kirjoita vastaukseen säännöllinen lauseke, joka hyväksyy kaikki merkkijonot, jotka eivät sisällä sanaa KORONKORKO
.
Vastaus voisi näyttää seuraavalta:
[^K]*
Tämä säännöllinen lauseke hyväksyy kaikki merkkijonot, joissa ei ole K
-kirjainta. Se ei kyllä vahingossa hyväksy yhtään merkkijonoa, jossa esiintyisi sana KORONKORKO
, mutta toisaalta se myös hylkää monta kelvollista merkkijonoa, mm. merkkijonon KORONKORKKI
.
13 henkilöllä on tulos. Suluissa oleva luku tarkoittaa säännöllisen lausekkeen pituutta.
jlaire (117), Metabolix (120), Jhuunhym (142), FooBat (186), öppis (195), membolic (202), Jaska (204), isashkar (204), Sisuaski (208), lukujenVihaaja (209), zebraze (212), Legu (215), os (221)
Kirjaudu sisään Ohjelmointiputkaan, niin voit lähettää vastauksen tehtävään.
Katso myös Putkaposti 29: Käänteislauseke.