В даний час я маю регулярний вираз для відповідності рядку, який містить 'bar', але не передує 'foo':
(?<!foo)bar
Я бажаю змінити регулярний вираз, щоб він відповідав, коли рядок містить 'bar', але не передує 'foo' і (необов'язково) будь-який додатковий символ (и).
EG. "footestbar" не має збігатися з тим, що бар передує "foo", за яким слідує "test".
Я не можу знайти спосіб досягти цього, оскільки регулярні вирази не дозволяють використовувати квантор в межах негативного виду. Згодом я не можу зробити наступне:
(?<!foo.*)bar
Чи існує альтернативний підхід?
ОНОВЛЕННЯ:
Регулярний вираз вираження re2 . Зараз я переглядаю документацію, але на перший погляд помічаю наступне:
(?<!re) after text not matching re (NOT SUPPORTED)
Тому рішення не може використовувати негативний погляд (якщо я правильно інтерпретую документацію).
(?<!re) after text not matching re (NOT SUPPORTED)