Вы можете принять \>
в качестве допустимого выражения для соответствия:
A<((\\>|.)*?)>
Группа (\\>|.)
будет соответствовать либо символам \>
, либо, если это не соответствует, .
, Порядок важен, поскольку \>
будет соответствовать двум символам, а .
соответствует только одному, что означает, что .
сожрет символ \
, если он появится первым.
Для иллюстрации:
A < v 1 \> v 2 >
| | | | | | | |
A < ( . . \> . . )*? >
Однако итоговое совпадение будет v1\>v2
, поэтому вам потребуется выполнить некоторую обработку после факта, чтобы преобразовать \>
в >
Если вы хотите go еще дальше и позволяя экранировать символ \
, вы можете использовать класс символов следующим образом:
A<((\\[>\\]|.)*?)>
Что будет соответствовать следующему:
A<v1\\>