Java Regex.Pattern поддерживает следующий класс символов:
[a-z&&[def]]
который соответствует "d, e или f" и называется пересечением.
Функционально это ничем не отличается от:
[def]
который проще читать и понимать в большом RE. Поэтому мой вопрос заключается в том, что использование пересечений, кроме указания полной поддержки CSG-подобных операций над классами символов?
(Обратите внимание: я понимаю полезность вычитаний, таких как [a-z&&[^bc]]
и [a-z&&[^m-p]]
, я спрашиваю конкретно о пересечениях, как показано выше.)