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

Value matching in regex and Openrefine

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

文本示例是:

"first sentence, second sentence, third sentences, 2009"

我要做的是 "Add column based on this column" 并插入

value.match(\d{4})

但我收到错误

Parsing error at offset 12: Missing number, string, identifier, regex, or parenthesized expression

知道可能的解决方案吗?

您需要解决 3 个问题才能正常工作:

1) 正如 Wiktor 所说,您需要使用正斜杠 /

开始和结束正则表达式

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

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

所以你需要这样的东西:

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

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