Если ваши регулярные выражения поддержки negative lookbehinds:
/(?<!\\)\//
В противном случае, вы будете необходимость соответствовать характеру перед /
, а:
/(^|[^\\])\//
Это соответствует либо началу строки (^
), либо (|
) ничего, кроме \
([^\\]
) в качестве группы захвата # 1 ()
. Затем он соответствует буквам /
после. Какой бы характер был до того, как /
будет храниться в группе захвата $1
, так что вы можете поместить его обратно, если вы делаете замену ....
Пример (JavaScript):
'st/ri\\/ng'.replace(/(^|[^\\])\//, "$1\\/");
// returns "st\/ri\/ng"
Какой язык вы используя для вашего RegExp? Есть много вкусов ... – gnarf
Вы не можете сделать это надежно, даже с lookbehinds. Но если вы сообщите нам, что вы пытаетесь сделать, мы можем предложить другой подход. –