Regex.Pattern Java obsługuje następujące klasy znaków:Jaki jest sens krzyżowania klasy znaków w Java Regex?
[a-z&&[def]]
który pasuje do "D, E lub F" i nazywa się skrzyżowanie.
Funkcjonalnie to nie różni się od:
[def]
który jest prostszy do przeczytania i zrozumienia w dużym RE. Moje pytanie brzmi: jaki jest pożytek z przecięcia, poza określeniem pełnej obsługi operacji typu CSG na klasach postaci?
(Należy pamiętać, rozumiem użyteczność odejmowań jak [a-z&&[^bc]]
i [a-z&&[^m-p]]
, pytam konkretnie o skrzyżowaniach, jak przedstawiono powyżej.)
Być może, ale wynik powyższego RE nie różni się od [\ p {Lower}], ponieważ \ p {Lower} z definicji jest tylko małymi literami w domyślnym alfabecie Jeśli Twój domyślny alfabet nie jest łaciński, to RE faktycznie nic nie da. – Christopher
Zmieniono \ p {Lower} na \ p {Ll}, aby uniknąć domyślnego problemu z alfabetem. – iammichael