Regex, problem z polskimi znakami

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.

Kopiuj
    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?

lipkerson
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad 2 lata
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.


Another jam from the world for the jam from the voices of the world......
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}*\-]+

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.