需要使用正则表达式查找第一个单词



我有像var Sql=" INSERT INTO DB.SCHEMA.TABLE VALUES(?,?,?)"这样的字符串我正在使用的正则表达式模式(?<=INSERT INTOb).*;生成结果为DB.SCHEMA.TABLE VALUES(?,?,?).

但是我需要在INSERT INTO之后的第一个单词,在这种情况下是DB.SCHEMA.TABLE.

为了只得到Insert Into

后的第一个单词,我应该在Regex模式中添加什么额外的表达式?

可以使用

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);

参见regex演示。细节:

  • bINSERT-全字INSERT
  • s+-一个或多个空白
  • INTO- andINTOword
  • s+-一个或多个空白
  • (w+(?:.w+)*|`[^`]*`)-第1组:出现一个或多个字字符,然后出现0个或多个.和一个或多个字字符,或者出现一个反勾,出现0个或多个除反勾以外的字符,然后出现一个反勾字符。

相关内容

  • 没有找到相关文章

最新更新