【发布时间】:2018-08-31 10:03:34
【问题描述】:
我有一列配置文件,其中是 json。如何搜索所有字段以搜索特定尼克。尼克可以是utf-8,所以正则表达式不适合解决。
{
"nick1": {
"color": [
1,
1,
1
],
"highlight": [
1,
1,
1
],
"global": false,
},
"nick2": {
"color": [
1,
0.15,
0.15
],
"highlight": [
0.2,
1,
0.2
],
"global": true,
},
"other_nick": {
"color": [
1,
1,
1
],
"highlight": [
1,
1,
1
],
"global": false,
}
【问题讨论】:
-
“可以是utf-8,所以正则表达式不合适”...是什么让你得出这个结论?
-
@ADyson 因为 json 中的 utf-8 是 \u041d\u0438\u043a
-
这意味着您没有在数据库中以 UTF8 格式存储/处理数据?数据库是 ANSI 还是什么,然后你在里面存储编码的 UTF8 字符串?目前尚不清楚为什么会发生您刚才描述的情况。如果您想在数据库中存储 UTF8 数据,允许数据库正确支持它是有意义的,然后您可以正常对值使用正则表达式。
-
@ADyson,MySQL 的正则表达式实现在 MySQL 8.0 之前不支持匹配 utf8 字符(参见stackoverflow.com/questions/19774618/…)。他们最近更改了用于实现正则表达式匹配的库,因此在 MySQL 8.0 中效果更好。
-
@BillKarwin 有趣,我不知道,谢谢。我承认自己更像是 SQL Server 的常客。