Совпадение нечеткого рисунка, без предыдущих слов, но только на один случай - PullRequest
0 голосов
/ 30 декабря 2018

У меня есть строки типа @variable a 2 с начала строки.Ключевое слово и его идентификатор @variable известны и фиксированы.Переменные могут иметь [_a-zA-Z] в качестве первого символа, а затем и номера второго символа или их комбинации.Они отделены как минимум пробелом от variable и хотя бы пробелом от значения, которое также может быть выражением, таким как (1+2)/2, или некоторой другой переменной b, поэтому оно начинается с числа, письмо или скобка.После этого в строке может быть много неважных вещей (в том числе и новой строки).

Что я хочу сделать, это сопоставить переменную, но только если это первое, что следует после variable и сопровождается значением или выражением.Вот что у меня получилось после последней попытки:

<context id="variable-noequal" style-ref="variable">
  <match extended="true">
    (((variable|variabel)\b\s+)?)
    (([_a-zA-Z][_a-zA-Z0-9]*))
    (?=((\s+)|(\s*\n)))
  </match>
</context>

Я пробовал разные комбинации (молот тоже участвовал), но я могу либо не найти совпадений, либо сопоставить каждое совпадение переменной, которая можетследовать (например, a 2 для Боже ради ).Взгляд назад всегда дает lookbehind not fixed или какую-то такую ​​ошибку.Я также пробовал с prefix/suffix/keyword, где keyword был нечетким совпадением, которое вы видите выше, но это тоже не сработало.Поиск в сети показал \K, что для меня ничего не значит.Я знаю, что совпадение могло бы быть лучше, например, так как оно есть, простое подчеркивание могло бы передаваться как переменная, я думаю, что я могу это сделать, но сейчас я просто хочу, чтобы оно было правильно выделено.Я, наверное, должен упомянуть, что я не разбираюсь в PCRE.Есть ли исправление для этого?

Извините, я забыл добавить это в GtkSourceView для gEdit, но я думаю, что оно основано на PCRE (?).

...