gpt4 book ai didi

regex - 持续模式匹配来识别 SQL 子句

转载 作者:行者123 更新时间:2023-12-02 09:33:10 25 4
gpt4 key购买 nike

我正在尝试在 R 中编写一个函数,该函数使用正则表达式从 SQL 代码中识别表名。

我正在使用捕获组来识别在 fromjoin 之后找到的任何单词/字母数字表达式,但是如果我的理解是正确的,捕获组只允许访问最后捕获的组。

##sample SQL code:
mySql <- 'select all from table1 join table2 join table3 join new_table3'

##regex:
gsub('.*(from|join)\\s*([[:alnum:]]+_*[[:alnum:]]+).*', '\\1 : \\2', mySql)

##result is only the last table in SQL code:
##"join : new_table3"

但我想要的是返回所有表名,如下所示:

from : table1
join : table2
join : table3
join : new_table3

或者这是否是正则表达式的有效使用,正如我认为的那样?

最佳答案

你可以试试

cat(gsub('.*?(from|join)\\s+([[:alnum:]_]+)', '\\1 : \\2\n', mySql))
#from : table1
#join : table2
#join : table3
#join : new_table3

关于regex - 持续模式匹配来识别 SQL 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30679886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com