[英]Regex to select column names from SQL query
I have a regexp that selects the columns from SQL query: \bwf\.[^,|^\s|^)]*
我有一个正则表达式,它从 SQL 查询中选择列: \bwf\.[^,|^\s|^)]*
So from both queries所以从两个查询
SELECT (wf.Name,
wf.Status)
SELECT wf.Name, wf.Status
it will return "wf.Name" , "wf.Status" .它将返回"wf.Name" 、 "wf.Status" 。 But also I want to cover case when column contains round brackets:但我也想涵盖列包含圆括号的情况:
SELECT (wf.Name,
wf.Status())
regexp should return "wf.Name" , "wf.Status()" .正则表达式应返回"wf.Name" 、 "wf.Status()" 。
I tried to do it through non-capturing group (?:(?,\s|.|<statement>).)*
but without success.我试图通过非捕获组(?:(?,\s|.|<statement>).)*
来做到这一点,但没有成功。
You can use您可以使用
\bwf(?:\.\w+)+(?:\(\))?
See the regex demo .请参阅正则表达式演示。 Details :详情:
\b
- a word boundary \b
- 单词边界wf
- a wf
string wf
- 一个wf
字符串(?:\.\w+)+
- one or more repetitions of a .
(?:\.\w+)+
- 一次或多次重复 a .
and one or more word chars (?:\(\))?
和一个或多个单词字符(?:\(\))?
- an optional occurrence of a ()
substring. - ()
substring 的可选出现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.