Google Refine 中 value.contains() 的正则表达式

Regex for value.contains() in Google Refine

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

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

有趣的是,相同的正则表达式在 SublimeText 中使用相同的数据。 (是的,我可以在那里工作然后重新导入,但我想了解有什么区别或者我的错误是什么)。

我正在使用 Google Refine 2.5。

您可以结合使用 if 和 isNonBlank,例如:

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

由于value.match应该return捕获文本,您需要定义一个带有捕获组的正则表达式并检查结果是否不为空。

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

Attempts to match the string s in its entirety against the regex pattern p and returns an array of capture groups.

因此,在您正在寻找的模式前后添加 .* 一个更大的字符串中:

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