谷歌优化中的Value.match()Regex



我正试图从Google Refine中的一列中提取一系列数字。这是我的代码:

value.match(/[d]+/)[0]

我专栏中的数据采用格式

abcababcabc 1234566 abcabcbacdf

结果为"null"。我不知道为什么!!如果我尝试w而不是d,那么它也是空的。

OpenRefine不像某些系统那样(正如人们所期望的那样)在模式末尾添加隐式通配符。试试这个模式:

value.match(/.*?(d+).*?/)[0]

你需要在通配符上加上惰性/非贪婪限定符(即问号),这样它们就不会吞噬你的一些数字。如果您只使用/.*(d+).*/,您将只匹配一个数字,因为其余数字将由.*模式获取。

实现的完整文档可以在Java的Pattern类文档中看到。

最新更新