Google Refine

时间:2016-02-23 10:23:58

标签: regex google-refine

我有一列字符串,我想使用正则表达式在每个单元格中查找逗号管道,然后执行操作。我试过这个,但它不起作用(没有语法错误,只是不匹配逗号和管道)。

if(value.contains(/(,|\|)/), ...

有趣的是,相同的正则表达式与SublimeText中的相同数据一起使用。 (是的,我可以在那里工作,然后重新进口,但我想了解有什么不同或我的错误是什么)。

我正在使用Google Refine 2.5。

2 个答案:

答案 0 :(得分:2)

您可以使用if和isNonBlank的组合,如:

if(isNonBlank(value.match(/your regex/), ...

答案 1 :(得分:2)

由于value.match应返回捕获的文本,因此需要使用捕获组定义正则表达式并检查结果是否为空。

另外,请注意正则表达式本身:字符串应匹配in its entirety

  

尝试将字符串s与regex模式p完全匹配,并返回一组捕获组。

所以,在你正在寻找里面的模式之前和之后添加.* 一个更大的字符串:

if(value.match(/.*([,|]).*/) != null)