gpt4 book ai didi

sql - 使用正则表达式解析 select 语句(用于自定义 SQL 解析器)

转载 作者:行者123 更新时间:2023-12-04 23:43:09 25 4
gpt4 key购买 nike

我这样做是为了教学目的(构建教学数据库;构建它的一部分,就像成熟的数据库一样;这是一个非常简单的查询解析器。)

我正在尝试使用正则表达式解析出简单的“选择”语句。它适用于大多数简单的情况,但我在允许选择表(来自 a,b;)之间的空间的平衡中失去了它,允许 from 和终止符 ; 之间有无限的空间,并允许可选的限制器“where”和无限的空间之间从 a,b where 和 ;

这是正则表达式:

select\s(.*)\sfrom(.*)\s(where (.*))?\s;

以下是示例查询:
select a.a,b.b,c from a,b where a.a = b.a;

select a.a,b.b,c from a,b;

select a.a,b.b,c from a,b ;

select a.a,b.b,c from a,b where a.a = b.a ;

可在 regex 101 上获得带有单元测试。

最佳答案

正则表达式 select\s+(.*)\s+from\s+(.*)\s*(where .*)?;通过了所有测试。我添加的唯一修改是 \s+而不是单个空格 \s

关于sql - 使用正则表达式解析 select 语句(用于自定义 SQL 解析器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41015852/

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