gpt4 book ai didi

java - 棘手的 Java 正则表达式来自 .. where

转载 作者:行者123 更新时间:2023-12-01 09:36:29 26 4
gpt4 key购买 nike

我正在尝试编写一个正则表达式,它将挑选出“from”和“where”之间的所有单词(即查询中的原始表名称)。

以下内容不起作用,实际上只是卡在输入上,根本没有“来自”。

"from(?:\\W*|(\\w*))*?where"

回应建议无约束回溯的评论,更改为

"from(?:\\W*+|(\\w*+))*?where"

不再挂起。但应用于

时与“obj”(仅“部分”)不匹配
select from obj, part where ...

任何人都可以看到它的问题吗?或者更好的方法?代码只是

Matcher match = ckPattern2.matcher(query); // Hangs here.
while (match.find())
for (int gx = 1; gx <= match.groupCount(); gx++)
String ck = match.group(gx); ...

(我的解决方法是将其拆分为单词,然后使用程序逻辑进行过滤。但我讨厌被正则表达式打败!)

最佳答案

这是一个解析问题,而不是扫描问题。您无法使用单个正则表达式来解决它。您需要扫描标记、标点符号和空格,并保留需要的内容并丢弃不需要的内容。您将需要用于标记、标点符号和空格的正则表达式。不仅仅是一个 RE。

关于java - 棘手的 Java 正则表达式来自 .. where,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38862806/

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