正则表达式和Openrefine中的值匹配

时间:2017-03-14 16:27:24

标签: regex openrefine

我正在尝试使用OpenRefine 2.6中的value.match命令根据4号日期拆分两列。

案文的一个样本是:

  

“第一句,第二句,第三句,2009”

我要做的是“根据此列添加列”并插入

  

value.match(\ d {4})

但我收到了错误

  

偏移12处的解析错误:缺少数字,字符串,标识符,正则表达式,   或带括号的表达

对可能解决方案的任何想法?

1 个答案:

答案 0 :(得分:0)

你需要修复3件事才能实现这个目标:

1)正如Wiktor所说,你需要开始&用正斜杠/

结束正则表达式

2)'匹配'函数要求你匹配单元格中的整个字符串,而不仅仅是你需要的片段 - 所以你的正则表达式需要匹配整个字符串

3)用“匹配”提取字符串的一部分'你需要在正则表达式中使用捕获组 - 即使用()围绕要提取的正则表达式的位。捕获的值将放在一个数组中,你需要从tge数组中取出字符串以将其存储在一个单元格中

所以你需要这样的东西:

value.match(/.*(\d{4})/)[0]

从字符串末尾获取四位数年份