来自 SQL 查询的 select 列名称的正则表达式

Regex to select column names from SQL query

我有一个从 SQL 查询中选择列的正则表达式:\bwf\.[^,|^\s|^)]*

所以从两个查询

SELECT (wf.Name,
       wf.Status)

SELECT wf.Name, wf.Status

它将 return "wf.Name", "wf.Status"。但我也想涵盖列包含圆括号的情况:

SELECT (wf.Name,
       wf.Status())

regexp 应该 return "wf.Name", "wf.Status()"

我尝试通过非捕获组 (?:(?!\s|,|<statement>).)* 但没有成功。

您可以使用

\bwf(?:\.\w+)+(?:\(\))?

regex demo详情:

  • \b - 单词边界
  • wf - wf 字符串
  • (?:\.\w+)+ - . 和一个或多个单词字符的一次或多次重复 (?:\(\))? - () 子字符串的可选出现。