我正在尝试为我的应用程序创建一个正则表达式过滤器.我使用HSQLDB存储我的消息和regex.pattern [1]类来匹配传入的消息.我注意到HSQLDB中的regex.pattern和LIKE使用了不同的匹配"teqniques".
我想要匹配:{"auth_user":"YQ==","auth_pass":"ZGFz"}.
使用HSQLDB: SELECT * FROM messages LIKE %auth%
使用regex.pattern:\bauth或auth
有没有办法从HSQLDB中的RLIKE或REGEX获取用户输入和查询?
有没有简单的方法在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 Error [S1000]: java.lang.ClassCastException: org.hsqldb.types.ClobDataID cannot be cast to java.lang.String
当我执行以下命令时
出现以下异常
SELECT * FROM WEBSOCKET_MESSAGE WHERE REGEXP_MATCHES(PAYLOAD_UTF8, '^a.*');
问题描述
我正在编写一个简单的JSON分析器,以实现JSON字符串的语法分析。我收到随机结构 JSON 字符串,并且想要导出语法结构。因此,我想要一个树结构,它描述 JSON 字符串的格式(键、值、数组等)和每个元素的类型。我已经找到了JSON的语法定义(如下所述)
object
{}
{ members }
members
pair
pair , members
pair
string : value
array
[]
[ elements ]
elements
value
value , elements
value
string
number
object
array
true
false
null
Run Code Online (Sandbox Code Playgroud)
例子
JSON 字符串:
{"widget": {
"null": null,
"window": {
153: "This is string",
"boolean": true,
"int": 500,
"float": 5.555
}
}}
Run Code Online (Sandbox Code Playgroud)
我想要得到类似的东西:
{ KEY_STR : {
KEY_STR : null
KEY_ARRAY : {
KEY_INT: VALUE_STR,
KEY_STR: VALUE_BOOL,
KEY_STR: VALUE_INT,
KEY_STR: VALUE_FLOAT …Run Code Online (Sandbox Code Playgroud)