11. juni 2004 - 00:27Der er
3 kommentarer og 1 løsning
Hvordan laver jeg et regulært udtryk 'negeret'
Jeg sidder med
ArrayList filtered = new ArrayList(); Pattern p = Pattern.compile( pattern ); for (int i = 0; i < list.size(); i++) { if (p.matcher( list.get(i).toString() ).matches()) { System.out.println("MATCH"); } }
Og hvis pattern = "MADS", får jeg match på alle elementer i listen, hvor toString() = "MADS".
Men nu vil jeg gerne gøre det omvendte. Finde en værdi af pattern der matcher alle elementer i listen, hvor toString() ikke er "MADS". Jeg troede at jeg kunne skrive pattern = "^MADS" men det er vist noget helt andet?
Der er mange ting man ikke kan med regulære udtryk. F.eks. kan du ikke match vilkårligt antal start og slutparenteser. Dvs. sproget (a^n)(b^n)
Javas implementering af regulære udtryk ser ikke ud til at understøtte komplement operatoren. Det er nok fordi den ikke er baseret på deterministiske endelige automater (men sikkert nondeterministiske).
Hvorfor er det ikke muligt at sætte en ! foran if'en ?
Synes godt om
Slettet bruger
24. marts 2011 - 13:04#4
Lukker
Synes godt om
Ny brugerNybegynder
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.