You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

kdb+/q中混合列表的字符串搜索替换实现方法咨询

Q语言批量字符串替换解决方案

你的需求是对d1中的每个字符串,用fargs和sargs对应位置的字符-单词对做批量替换,同时保持原格式。当前代码的问题在于,你是对每个字符串生成了多次独立替换的结果(每个替换规则对应一个结果),而不是在同一个字符串上依次应用所有替换规则。

正确实现方法

先把替换规则打包成字符与目标单词的配对列表,再对每个字符串依次执行所有替换操作:

// 生成替换规则配对:每个fargs字符对应sargs里的单词
replacePairs: flip (fargs; sargs)

// 对d1中的每个字符串,依次应用所有替换规则
result: {[str; pairs] ssr[;;]/[str; pairs]}[; replacePairs] each d1

代码解释

  • flip (fargs; sargs):把两个列表转成配对的二维列表,比如第一个配对就是("w"; "help"),以此类推。
  • ssr[;;]/[str; pairs]:用/(over迭代器)对字符串str依次应用所有替换配对,相当于先执行ssr[str; "w"; "help"],再用结果执行ssr[.; "h"; "yes"],直到所有规则应用完成。
  • each d1:把上述操作应用到d1的每个元素上。

运行结果示例

执行后result会输出:

"['null', 'helpork']"
"['verwhy']"
"['yesi', 'nore']"
"['null']"
"['null', 'echo']"
"['pwhywhenuse']"
"['null', 'yesi']"
"['null', 'cyeek']"
"['lwhenmb', 'null']"

内容的提问来源于stack exchange,提问作者Jack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 01:33:16