gpt4 book ai didi

java - 在 Java 中使用 HSQLDB 进行正则表达式查询

转载 作者:搜寻专家 更新时间:2023-10-31 20:31:58 26 4
gpt4 key购买 nike

我正在尝试为我的应用程序创建一个正则表达式过滤器。我正在使用 HSQLDB 来存储我的消息和 regex.pattern[1] 类来匹配传入的消息。我注意到 HSQLDB 中的 regex.pattern 和 LIKE 使用不同的匹配“teqniques”。

例子

我要匹配:{"auth_user":"YQ==","auth_pass":"ZGFz"}

使用 HSQLDB:SELECT * FROM messages LIKE %auth%

使用 regex.pattern:\bauthauth

我的问题

  1. 在 HSQLDB 中有没有什么方法可以获取用户的输入并使用 RLIKE 或 REGEX 进行查询?

  2. 有什么简单的方法可以在 HSQLDB 查询中转换 regex.pattern 吗?

[1] https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

提前谢谢你。

编辑 1: 我收到的消息不仅是 JSON 格式的。

编辑 2: 我尝试了 REGEXP_MATCHES 像@JorgeCampos 和@fredt 提到我但我得到以下异常SQL 错误 [S1000]:java.lang.ClassCastException:org.hsqldb.types.ClobDataID 无法转换为 java.lang.String当我执行以下命令时SELECT * FROM WEBSOCKET_MESSAGE WHERE REGEXP_MATCHES(PAYLOAD_UTF8, '^a.*');

最佳答案

使用 REGEXP_MATCHES(column_name, regular_expression)

该函数使用 Java 正则表达式语法。

如果列类型是 CLOB,则使用转换为 VARCHAR

REGEXP_MATCHES(CAST (column_name AS LONGVARCHAR), regular_expression)

关于java - 在 Java 中使用 HSQLDB 进行正则表达式查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49492205/

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