Avatar billede mercutio Nybegynder
07. januar 2003 - 13:33 Der er 5 kommentarer og
2 løsninger

Regulære udtryk i java....

Kan man ikke lave et regulært udtryk der tager alle tal og fjerner dem fra en streng?

så strengen "linie99"
bliver til "linie"
og linien "j3j3j3"
bliver til "jjj"

Ikke nogle forslag med substrings osv... det kan jeg selv lave...
Avatar billede carstenknudsen Nybegynder
07. januar 2003 - 13:44 #1
Du kan bruge klasserne i java.util.regex pakken
som følger til at løse dit problem:
import java.util.regex.*;
public class SRE {
    public static void main( String[] args ) {
    CharSequence input = "linie99";
    String number = "([0-9]+)";
    Pattern pattern = Pattern.compile( number );
    Matcher matcher = pattern.matcher( input );
    StringBuffer buf = new StringBuffer();
    boolean found = false;
    while ( ( found = matcher.find() ) ) {
        matcher.appendReplacement(buf, "");
    }
    matcher.appendTail( buf );
    String result = buf.toString(); 
    System.out.println( result );
    }
}
Avatar billede di8leva Nybegynder
07. januar 2003 - 13:46 #2
menar man skall kunna gøra:

        Pattern p = Pattern.compile("\\d*");
        String s = "line2line3";
        p.matcher(s).replaceAll("");

Pattern och Matcher finns i java.util.regex i java 1.4
Avatar billede carstenknudsen Nybegynder
07. januar 2003 - 13:50 #3
di8leva's løsning er mest elegant, du skal
kun bruge min løsning i de tilfælde hvor
du skal erstatte noget med noget ikke konstant,
men i dit tilfælde er det jo en konstant ("").
Avatar billede mercutio Nybegynder
07. januar 2003 - 14:02 #4
hmmm jeg får compiler fejl ved pattern.compile..... men ok jeg kan heller ikke importe java.util.regex
jeg kan importe
com.oroinc.text.regex.*;
men det er vidst slet ikke det samme.. det er noget ibm værk vi kører på prøver lige at finde ud af lidt mere.
Avatar billede carstenknudsen Nybegynder
07. januar 2003 - 14:05 #5
Det er vigtigt at du har Java 2SDK 1.4 eller senere, det
er først der at regulære udtryk blev introduceret i
standarddistributionen. Hvis ikke så hent den fra
java.sun.com
Avatar billede mercutio Nybegynder
07. januar 2003 - 14:21 #6
Hehe arbejder på et kæmpe projekt og jeg bestemmer detsværre ikke platformen =)
Avatar billede carstenknudsen Nybegynder
07. januar 2003 - 14:38 #7
Så må du hellere checke hvilke klasser der
ligger i com.oroinc.text.regex.*;
God fornøjelse.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester