嗨,我有像var Sql=" INSERT INTO DB.SCHEMA.TABLE VALUES(?,?,?)"
Regex 模式这样的字符串,我正在使用 (?<=INSERT INTO\b).*; 产生的结果为DB.SCHEMA.TABLE VALUES(?,?,?).
但是我需要在 INSERT INTO 之后立即第一个词,在这种情况下是 DB.SCHEMA.TABLE。
我应该在 Regex 模式中添加什么额外的表达式才能在 Insert Into 之后只获取第一个单词
您可以使用
const text = `var Sql=" INSERT INTO DB.SCHEMA.TABLE VALUES(?,?,?)"`;
const regex = /\bINSERT\s+INTO\s+(\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 组:一个或多个单词字符,然后零次或多次出现.
和一个或多个单词字符,或一个反引号,零个或多个除反引号之外的字符,然后是一个反引号字符。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句