Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: SL-haasteen tehtäviin vastaaminen

Sivu 1 / 1

AtskaFin [17.03.2019 15:27:30]

#

Olen tehnyt noita SL - haasteita muutaman. C# säännöllisen lausekkeen alkuun ja loppuun merkitään merkit ^ ja $ (esim. "^([0-1][0-1])$").

Ohjelmointiputkan palautus ei kuitenkaan hyväksy noita merkkejä (^$), joten olen laittanut vastaukseeni lausekkeen ilman niitä.

Nyt kun olen vastaamassa tuohon nelostehtävään, niin se ei hyväksy lausekettani: @"^([0-1])[0-1]*\1$" olen siis laittanut sen muodossa ([0-1])[0-1]*\1, mutta tulee vain ilmoitus, että "\"- merkkiä ei voi käyttää. Mitä muissa kielissä käytetään "\" -tilalta regex:ssä?

Ei se näytä hyväksyvän seuraavaakaan tehtävään 5: "^([0-1])[0-1]*(?<!\1)$"

Onko asia niin, että muissa kielissä merkitään lausekkeita eritavoilla?

Metabolix [17.03.2019 16:07:18]

#

Olisi järkevää lukea haasteen ohjeet ennen tehtävien tekemistä. Ohjeissa kerrotaan säännöllisten lausekkeiden teoriasta ja kerrotaan perinteisiin säännöllisiin lausekkeisiin kuuluvat (eli haasteessa sallitut) merkinnät. Tavallisiin säännöllisiin lausekkeisiin ei kuulu takaisinviittaus (backreference), eli sitä ei voi käyttää haasteessa. Lyhyesti sanottuna sallitut merkinnät ovat numeroiden lisäksi |()*+?{,}[-].

AtskaFin [17.03.2019 16:13:16]

#

No eikö tuossa pidäkkään käyttää takaisinviittausta, että saa ekan numeron selville? (4 tehtävä)

Metabolix [17.03.2019 16:16:00]

#

Ei pidä, sillä takaisinviittaus ei kuulu perinteisiin säännöllisiin lausekkeisiin eikä sitä voi käyttää haasteessa ollenkaan. Ehkä jotain vinkkiä voi hakea myös siitä, että ehdottamasi ratkaisu olisi mahdollista helposti lyhentää muotoon ”(0|1)[01]*\1”, joka olisi vain 12 merkkiä pitkä, mutta tehtävän ennätys on 15 merkkiä.

AtskaFin [17.03.2019 16:21:16]

#

Tutustuin tänään ekaa kertaa säännöllisiin lausekkeisiin, niin en ole vielä ymmärtänyt, kuin vasta ihan alkeet.

Sain tehtyä sen tehtävän. (Mod. huom: Älä laita vastauksia keskusteluun...)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta