gpt4 book ai didi

regex - OpenRefine 自定义文本分面

转载 作者:行者123 更新时间:2023-12-01 13:46:43 24 4
gpt4 key购买 nike

我有一列名称,例如:

  • 夸利亚,彼得罗·保罗
  • Bernard, of Clairvaux, Saint, or
  • .E., Calvin F.
  • Swingle、M Abate、Agostino、Assereto
  • 阿巴蒂,安东尼奥
  • 10-NA)\u, Ferraro, Giuseppe, ed, Biblioteca comunale ariostea。小姐(埃斯特里

我想用 openrefine 制作一个自定义文本分面,用一个逗号标记为“真”的名字,所有其他的都标记为“假”,这样我就可以使用最后一个 (".E., Calvin F.")这不是问题,我稍后会处理)。

我正在尝试使用“Custom text facet”和这个表达式:

if(value.match(/([^,]+),([^,]+)/), "true", "false")

但是结果都是假的。哪里出错了?

最佳答案

您正在使用的表达式:

if(value.match(/([^,]+),([^,]+)/), "true", "false")

将始终评估为 false,因为“匹配”函数的输出是数组或 null。当通过“if”进行评估时,数组和“null”都不会评估为真。

您可以将匹配函数包装在“isNonBlank”或类似函数中以获得 bool 值 true/false,这将导致“if”函数按您希望的方式工作。然而,一旦你得到一个 bool 值 true/false 结果,'if' 就变得多余了,因为它的唯一功能是将 bool 值 true/false 转换为字符串“true”或“false” - 这不会对值函数产生任何影响自定义文本方面。

所以:

isNonBlank(value.match(/([^,]+),([^,]+)/))

应该使用 match 给你想要的结果

关于regex - OpenRefine 自定义文本分面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35452721/

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