Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式从SQL查询中选择列名_Sql_Regex_Character - Fatal编程技术网

正则表达式从SQL查询中选择列名

正则表达式从SQL查询中选择列名,sql,regex,character,Sql,Regex,Character,我有一个从SQL查询中选择列的regexp:\bwf\.[^,| ^\s | ^)]* 因此,从两个查询 SELECT (wf.Name, wf.Status) SELECT wf.Name, wf.Status 它将返回“wf.Name”、“wf.Status”。但我还想讨论一下列包含圆括号时的情况: SELECT (wf.Name, wf.Status()) regexp应该返回“wf.Name”、“wf.Status()” 我试图通过非捕获组(?:(?!\

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

因此,从两个查询

SELECT (wf.Name,
       wf.Status)

SELECT wf.Name, wf.Status
它将返回“wf.Name”、“wf.Status”。但我还想讨论一下列包含圆括号时的情况:

SELECT (wf.Name,
       wf.Status())
regexp应该返回“wf.Name”、“wf.Status()”

我试图通过非捕获组
(?:(?!\s |,|))*
来完成,但没有成功。

您可以使用

\bwf(?:\.\w+)+(?:\(\))?
看。详情:

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

@WiktorStribiżew谢谢你!