Regex, чтобы соответствовать, только если начало строки не является чем-то?

1

У меня есть несколько строк, которые я бы хотел сопоставить, и несколько строк, которые я бы исключил из сопоставления в файле.

Я бы не хотел совпадать remote access</a> (main card) и хотел бы соответствовать anything else</a> (main card)

Я не совсем уверен, как это сказать "если есть, НЕ ПОДХОДИТ!"

Сейчас я использую возвышенный текст 2, но могу переключиться на vim или аналогичный, если это будет проще.

Спасибо!

Rob
источник

Ответы:

2

Я бы использовал опережающее утверждение :

^(?!remote access)[^<]*</a> \(main card\)
daxlerod
источник
По какой-то причине это не сработало, но потом я понял, что в возвышенном тексте установлено «только выделение». Это поможет мне начать исправление некоторых файлов!
Rob
AAA, и я получил все, где это должно быть все сразу! Это был огромный старт на то, что мне было нужно!
Rob
2

В Vim вы можете использовать \@<! регулярное выражение атома, чтобы утверждать, что атом, прежде чем он делает не матч. В вашем примере это будет:

/\%(remote access\)\@<!<\/a> (main card)
Ingo Karkat
источник