Python регулярное выражение, чтобы избежать символа ранее в строке

Я хотел бы использовать регулярное выражение, чтобы найти точную строку, но не, если это часть комментария, как обозначено //,

Так, например, в строке:

привет яблочные яблоки // есть яблоко

Это должно соответствовать первому яблоку, но не второму или третьему.

Итак, я думаю, что регулярное выражение будет что-то вроде этого. Было бы найти строку с переносом слов вокруг нее, но не если // за этим стоит:

(?<!\/\/)\bapple\b

Проблема с отрицательным запаздыванием в этом случае заключается в том, что он выглядит только рядом со словом. Мне нужно, чтобы он оглянулся назад, чтобы убедиться, что символ комментария не существует ранее в строке.

2 ответа

Решение

Этот шаблон поймает то, что вы хотите в первом под-шаблоне

\/\/.*|\b(apple)\b

демонстрация

Я думаю, что вам просто нужно скрыть свой комментарий для утверждения позади;

    (?<!\/\/)\b(apple)\b ## doesn't work, don't use this.

Попробуй - regex101.com

Другие вопросы по тегам