来自 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+)+
- .
和一个或多个单词字符的一次或多次重复
(?:\(\))?
- ()
子字符串的可选出现。
我有一个从 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+)+
-.
和一个或多个单词字符的一次或多次重复(?:\(\))?
-()
子字符串的可选出现。