Нужно найти Первое слово, используя Регулярное выражение

#regex

Вопрос:

ПРИВЕТ, у меня есть строка, похожая var Sql=" INSERT INTO DB.SCHEMA.TABLE VALUES(?,?,?)" на шаблон регулярного выражения, который я использую (? DB.SCHEMA.TABLE VALUES(?,?,?).

Но мне нужно первое слово сразу после ВСТАВКИ В , которое в данном случае является DB.SCHEMA.стол.

Какое дополнительное выражение я должен добавить в шаблон регулярных выражений, чтобы получить только первое слово после вставки в

Ответ №1:

Вы можете использовать

 const text = `var Sql=" INSERT INTO DB.SCHEMA.TABLE VALUES(?,?,?)"`;
const regex = /bINSERTs INTOs (w (?:.w )*|`[^`]*`)/g;
const results = Array.from(text.matchAll(regex), (x) => x[1]);
console.log(results); 

Смотрите демонстрацию регулярных выражений. Подробные сведения:

  • bINSERT — целое слово INSERT
  • s — один или несколько пробелов
  • INTO — одно INTO слово
  • s — один или несколько пробелов
  • (w (?:.w )*|`[^`]*`) — Группа 1: один или несколько символов слова, а затем ноль или более вхождений . и один или несколько символов слова, или обратный отсчет, ноль или более символов, отличных от обратного отсчета, а затем обратный отсчет.