Единственное, что я вижу, что вы можете сократить, это сгруппировать односимвольные опции в класс символов; это не только экономит |
, но и означает, что вам не нужно делать столько экранирования, сколько не имеет особого значения внутри класса символов. Таким образом, \\|:|\*|\?|"|<|>|\|
становится [\\:*?"<>|]
Если ваш вариант регулярного выражения это позволяет, вы также можете использовать разделитель, отличный от /
(#
довольно часто встречается и не используется в вашем шаблоне), чтобы сохранить еще несколько побегов.
Это оставляет вас с #\.\./|(?<!\.)/|[\\:*?"<>|]#g
Не совсем красиво, но тогда регулярное выражение редко бывает:)