简体   繁体   English

正则表达式到 SQL 查询中的 select 列名

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM