关于用Dataview查询带中文括号的inline field的问题。

使用中发现,inline field的key值是可以带中文符号的。但是,当用dataview查询该列的时候,你要把列名里的中文符号去掉,才查得到。否则,代码会报错:

Expected one of the following:
‘(’, ‘)’, ‘*’ or ‘/’ or ‘%’, ‘+’ or ‘-’, ‘,’, ‘.’, ‘>=’ or ‘<=’ or ‘!=’ or ‘=’ or ‘>’ or ‘<’, ‘[’, ‘and’ or >‘or’, /[0-9\p{Letter}_-]/u, text

但是这里面这个’('是英文的,并不是中文“(”。
而这个“/[0-9\p{Letter}_-]/u”和“text”是说不能用除英语以外的其它语言中的文本和符号吗?可是中文标点不属于中文字,而这个text是单独一项,明明查询的列名是可以用正常中文文字的啊。
看了一下官方文档,其中提到:不能用大写字母、加粗符号,用了这些的话,在field中阅读模式显示还是会正常显示,但是在dataview查询语句中就要用净化版。大写改小写,加粗符号删掉当作不存在。看来我这个中文括号是被当作加粗符号一类的符号,给净化掉了。所以我在查询列名的时候,要自己把列名中的中文括号删去,就当field key名里没有它,就正常了。
我试了一下,其它中文符号,像中文省略号等,也是这么提示的。
作为小白来记录一下踩坑经验。
顺便请教一下大家,field的key带中文标点还有我没想到的别的问题吗?

没有完全弄懂, 以下是自己找到的一些规律:

字段名如果含中文标点等, 在 dv 查询该 field 时, 如同楼主所说, field 应该写成 “中文标点去掉, 大写字符转小写, 空格转-” 的形式, 例如:

---
测试字段1: value1
测试(中文)【问题】字段: value2
测试字段名(zhCN)混合英文en: value3
---

[正文内 测试(中文)字,段。:: value4]

[inline field with space:: value5]

正文内(复杂的)字段名,且不用方括号包裹:: 失败了无法识别

```dataview
TABLE 测试字段1, 测试中文问题字段, 测试字段名zhcn混合英文en, 正文内-测试中文字段, inline-field-with-space, row["正文内(复杂的)字段名,且不用方括号包裹"]
FROM "obs_test/test_dataview/inline field key 带中文符号"
```

以上测试里, 大部分 复杂 field 都能认出来


此外, 发现 row[...] 写法可以无视所有的中文标点限制, 空格限制, 大小写限制
例如 row["正文内 测试(中文)字,段。"]
这可以正常识别出来, 截图略


但是, 正文内的单行的 field:: value 形式, 如果 field 过于复杂, 则怎么也无法识别到, 还没搞定

但是这里面这个’('是英文的

我理解这是 dv 语法块的 “无法解析时, 对用户的提示”, 说的是, 这里允许是一个半角括号, 或者剩余那些符号,

这提示跟全角圆括号无关, 估计你写书名号, 它也会这么提示


field的key带中文标点还有我没想到的别的问题吗?

个人建议, 还是尽量用简单字段名… 在各种编程语言里, 这么写字段基本都没法从字面识别, 只能动态引用