3

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

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

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

我正在使用 Google Refine 2.5。

4

2 回答 2

2

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

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

尝试将字符串 s 与正则表达式模式 p 完全匹配,并返回一个捕获组数组。

因此,.*您正在查看更大字符串的模式之前和之后添加:

if(value.match(/.*([,|]).*/) != null)
于 2016-02-23T12:11:50.433 回答
2

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

if(isNonBlank(value.match(/your regex/), ...
于 2016-02-23T11:55:19.727 回答