Хорошо, поэтому я пытаюсь использовать регулярное выражение для соответствия экземплярам символа только в том случае, если он не был экранирован (с обратной косой чертой) и решил использовать отрицательный внешний вид, за примерно так:Регулярное выражение для соответствия только необработанным символам
(?<!\\)[*]
Это преуспевает и терпит неудачу как ожидается, со строками, такие как foo*
и foo\*
соответственно.
Однако он не работает для строк, таких как foo\\*
, i.e - где специальному символу предшествует обратная косая черта, сбрасывающая другую обратную косую черту (escape-последовательность, которая сама экранирована).
Можно ли использовать негативный внешний вид (или какой-либо другой метод), чтобы пропустить специальные символы, только если им предшествует нечетное число обратных косых черт?
Какой язык вы работаете? –
[Дубликат] (https://stackoverflow.com/questions/5937241/regular-expression-to-match-unescaped-special-characters-only). Кроме того, вы не сказали нам язык, который вы используете, и вы определенно не искали не менее 20 секунд, чтобы найти решение. –
@ AvinashRaj в моем случае Swift (или, более конкретно, я использую 'NSRegularExpression'), похоже, что у него нет никаких функций регулярного выражения, поэтому я не думал, что нужно упоминать. @rac вы определенно не искали более 20 секунд в дубликате, который вы опубликовали, так как это не касается моего точного дела; i.e - его escape-последовательность не может использоваться для того, чтобы сбежать. – Haravikk