Я пытаюсь определить регулярное выражение в JavaScript, которое соответствует всем вхождениям, за исключением тех, которые указаны в начале или в конце строки.
Я могу исключить те в начале, но не вконец.Например:
const MULTILINE = `
Lorem ipsum dolor sit amet ANNA
ANNA lorem ipsum dolor sit amet
Lorem ipsum dolor ANNA sit amet
`
MULTILINE.match(/ANNA\w+/gm)
// output: ["ANNA_END", "ANNA_BEGIN", "ANNA_MIDDLE"] ok
MULTILINE.match(/(?!^)ANNA\w+/gm))
// output: ["ANNA_END", "ANNA_MIDDLE"] ok
MULTILINE.match(/ANNA\w+(?!$)/gm))
// output: ["ANNA_EN", "ANNA_BEGIN", "ANNA_MIDDLE"] fail
// expected: ["ANNA_BEGIN", "ANNA_MIDDLE"]
Как видно, он правильно идентифицирует мою последнюю строку, но извлекает последний символ (как если бы $ заменялось другим выражением \ d).
У меня естьпрочитайте много документации и опробовали несколько вариантов, таких как MULTILINE.match(/ANNA\w+(?!ANNA\w+$)/gm))
, но безуспешно.
Любая помощь здесь?:)