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