problem:Java: Wyrażenie regularne, gdzie każda postać występuje 0-1 razy
meczów słowa, w którym każdy znak wyrażenia regularnego występuje raz na najbardziej.
Słowo musi być określonej wielkości, powiedzmy, "{2,5}"
jeden konkretny znak musi być w słowie, powiedzmy char "e"
Co mam:
word.matches("^[abcde]{2,5}$");
ten pasuje do wszystkich słów, znaków, gdzie a, b, c, d, e oraz występujące 0..5 razy. Dlatego słowa "abba" i "martwy" są dopasowane, mimo że "abba" używa znaku "b" dwa razy i "martwy" używa znaku "d" dwa razy. Wyrażenie ignoruje również, czy znak "e" znajduje się w słowie.
To, czego chcę, to dopasowanie, w którym każdy znak jest używany maksymalnie, słowo ma długość 2-5 liter, a znak "e" jest w słowie. Prawidłowe dopasowanie byłoby na przykład "paciorkami", ponieważ każdy znak jest użyty raz max, a znak "e" jest w słowie.
To byłoby skomplikowane wyrażenie regularne. Sugerowałbym nie używać w tym celu wyrażenia regularnego. Regex nie jest w stanie "dopasować tego raz nigdzie w ciągu znaków". –