Я пытаюсь использовать группы захвата регулярных выражений и обходные пути для сопоставления всех вхождений определенного слова в последовательности, но только если оно не окружено символами & и;символы (т.е. я не хочу захватывать word
из &word;
, но я делаю из &word
или word;
).
Я написал регулярное выражение, которое, как я думал, удовлетворит мои потребности, ноэто не так - кажется, что отрицательный обходной путь, который я вставил, если предложение делает только первую группу несопоставленной, а не все совпадение.
(&[^;&]*)?(amp)(?(1)(?!;))
При использовании в этой строке: >amp; & amp & &<
Я ожидал, что только первый, третий и пятый усилители будут согласованы из-за отрицательного внешнего вида, но неожиданно все они сопоставляются только с символами &, которые сопровождаются ;
.
https://regex101.com/r/ilAAVb/1
Я делаю здесь какую-то очевидную ошибку или ищите обходные пути, если предложение работает только для группы, которую проверяет это предложение?
Редактировать: Исправлено то, что мне нужно извлечь из предложения.