Regex, problem z polskimi znakami

Regex, problem z polskimi znakami
  • Rejestracja: dni
  • Ostatnio: dni
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: dni
  • Ostatnio: dni
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.

  • Rejestracja: dni
  • Ostatnio: dni
0

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

  • Rejestracja: dni
  • Ostatnio: dni
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.