Я хотел бы выделить ключевые слова SQL, которые встречаются внутри строки в синтаксическом подсветке. Вот правила, которые я хотел бы иметь:
- Сравните ключевые слова SELECT и FROM (другие будут добавлены, но мы начнем здесь). Должно быть, все колпачки
- Должно содержаться в строке -- либо начинающейся с,
'
либо - Первое слово в этой строке (игнорируя предшествующие ему пробелы) должно быть одним из ключевых слов.
Это, конечно, не исчерпывающе (можно не обращать внимания на побеги внутри строки), но я хотел бы начать с этого.
Вот несколько примеров:
- SELECT * FROM main -- не будет совпадать (не в строке)
- SELECT name FROM main -- будет соответствовать
-
ВЫБЕРИТЕ имя из основного -- будет соответствовать - Вот SQL-оператор:
SELECT * FROM main -- Нет, строка не начинается с ключевого слова (SELECT...).
Я думал, что единственный способ сделать это в одном регексе - это отрицательный взгляд... но тогда не будет фиксированной ширины, так как мы не знаем, когда начинается строка. Что-то вроде..:
Но это, конечно, не сработает:
Можно ли сделать что-то подобное в одном регексе?