正则表达式和 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]
获取字符串末尾的四位数年份
我正在尝试使用 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]
获取字符串末尾的四位数年份