7

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

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

我列中的数据格式为

abcababcabc 1234566 abcabcbacdf

结果为“空”。我不知道为什么!!\d如果不是I try ,它也是 null \w

4

1 回答 1

8

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

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

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

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

于 2013-07-27T13:39:55.543 回答