我正在尝试从 Google Refine 的列中提取一系列数字。这是我的代码:
value.match(/[\d]+/)[0]
我列中的数据格式为
abcababcabc 1234566 abcabcbacdf
结果为“空”。我不知道为什么!!\d
如果不是I try ,它也是 null \w
。
我正在尝试从 Google Refine 的列中提取一系列数字。这是我的代码:
value.match(/[\d]+/)[0]
我列中的数据格式为
abcababcabc 1234566 abcabcbacdf
结果为“空”。我不知道为什么!!\d
如果不是I try ,它也是 null \w
。
OpenRefine 不会像某些系统那样在模式的末尾添加隐式通配符(并且正如人们所期望的那样)。试试这个模式:
value.match(/.*?(\d+).*?/)[0]
您需要通配符上的惰性/非贪婪限定符(即问号),这样它们就不会吞噬您的一些数字。如果你只是使用/.*(\d+).*/
你只会匹配一个数字,因为其余的将被 .* 模式占用。
完整的实现文档可以在 Java 的Pattern
类文档中看到。