Avatar billede riversen Nybegynder
18. april 2009 - 09:10 Der er 7 kommentarer og
1 løsning

hjælp til reg. exp.

Hej,

jeg har en html streng. Jeg skal have fjernet alt før og efter body incl. body tag's, så det egentlig kun er den rå html for selve siden der er tilbage.



<html>
<head><title>hej</title>
</head>
<body style="color: red;">
<div>mojn</div>
<i>mojn mojn</i>
</body></html>

bliver til

<div>mojn</div>
<i>mojn mojn</i>
Avatar billede riversen Nybegynder
18. april 2009 - 13:37 #1
nevermind
Avatar billede arne_v Ekspert
18. april 2009 - 14:18 #2
Hvis din HTML ikke er alt for grumset, så er det faktisk rigtigt nemt:

String inside = html.replaceAll(".*<body[^>]*>", "").replaceAll("</body>.*", "");
Avatar billede riversen Nybegynder
18. april 2009 - 15:39 #3
har prøvet noget lignende. Det fjerner kun linien med body.
Avatar billede arne_v Ekspert
18. april 2009 - 15:50 #4
Ah. Det er linieskiftene der driller.

import java.util.regex.Pattern;

public class InsideBody {
    private static final Pattern restart = Pattern.compile(".*<body[^>]*>", Pattern.DOTALL);
    private static final Pattern reend = Pattern.compile("</body>.*", Pattern.DOTALL);
    public static void main(String[] args) {
        String html = "<html>\r\n<head>\r\n<title>hej</title>\r\n</head>\r\n<body style=\"color: red;\">\r\n<div>mojn</div>\r\n<i>mojn mojn</i>\r\n</body>\r\n</html>";
        System.out.println(html);
        String inside1 = html.replaceAll(".*<body[^>]*>", "").replaceAll("</body>.*", "");
        System.out.println(inside1);
        String inside2 = reend.matcher(restart.matcher(html).replaceAll("")).replaceAll("");
        System.out.println(inside2);
    }
}
Avatar billede riversen Nybegynder
18. april 2009 - 16:01 #5
ja, det triller lidt bedre. Går ud fra du overlever uden point.
Avatar billede arne_v Ekspert
18. april 2009 - 16:18 #6
ork ja
Avatar billede riversen Nybegynder
21. april 2009 - 21:13 #7
lige et tillægsspørgsmål. Hvis jeg vil have den case-insensitive mht. body. Så den også fanger BODY, boDY etc.
Avatar billede arne_v Ekspert
21. april 2009 - 21:41 #8
Pattern.DOTALL + Pattern.CASE_INSENSITIVE
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