Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: Säännölliset lausekkeet back referenceillä

Matso [05.06.2007 00:02:45]

#

<?php
// vaatimus: kymmenen kirjainta, joiden jälkeen yksi tai useampi kirjain
// \1 viittaa suluissa olevaan osuuteen eli kymmeneen kirjaimeen
echo preg_replace("/(\w{10})\w+/", "\\1...", "kynä matkapuhelin tietosanakirja");
// kynä matkapuhel... tietosanak...
?>

Toi nyt on tuolta ohjelmointiputkan php oppaasta otettu pätkä sen takia, että tajuisitte mitä haen takaa. Elikkä en löydä tietoa, miten sais javassa tehtyä tollasen, että saa tohon korvaukseen osan korvattavasta merkkijonosta. Esimerkiksi php:llä se tehdään tolleen laittamalla sulkeet ja sitten \\1. Javassa ei tunnu toimivan samalla tapaa.

Blaze [05.06.2007 01:10:13]

#

String-luokalla on replaceAll-metodi, jolla korvaukset sujuu näppärästi. Mut toisin ku PHP Java käyttää noissa korvauksissa merkintää $n Tuo esimerkki siis Javalla:

System.out.println("kynä matkapuhelin tietosanakirja".replaceAll("(\\w{10})\\w+", "$1..."));

Vastaus

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

Tietoa sivustosta