Regex, problem z polskimi znakami

0

Witam

Chciałbym w stringu pozostawić tylko litery, liczby i myślniki.

Niestety usuwane są także polskie litery.

    public static String doCleanForSeo(String str) {
        str = str.toLowerCase();
        str = ltrim(str);
        str = rtrim(str);
        str = str.replaceAll("\\s+", "-");
        str = str.replaceAll("[^0-9a-z\\-]+", "");
        return str;
    }

Poradziłby mi ktoś jak napisać wyrażenie żeby zostały polskie znaki?

0

no przecież sam masz a-z to polskie znaki w tym nie są przecież i dlatego sa usuwane. Potraktuj każdą polską literę z osobna tzn tak jakby to był inny znak typu ":" czy "]" bo w sumie przeciez tak rzeczywiscie jest.

0

Na pewno jest lepsze rozwiązanie związane ściśle z regex.

0

czułem, że mi farmazony piszesz i istnieje normalne rozwiązanie: [^0-9\p{L}*\-]+

1 użytkowników online, w tym zalogowanych: 0, gości: 1