Openrefine 重排值

问题描述

在 csv 列中,我有以下数据:

My Dog (101)
ACat(f023.12)
My Dog (101)
ACat ad

我喜欢重新排列它们:

101,My Dog ()
f023.12,ACat()
101,My Dog ()

为了匹配它们,我可以使用一个简单的正则表达式,如 (.* ?)\((.*)\)(最后一行将保持不变)https://regex101.com/r/ivrIa3/1

是否有更简单的方法

if(value.contains(/(.* ?)\((.*)\)/),value.match(/(.* ?)\((.*)\)/)[1] + ',' + value.match(/(.* ?)\((.*)\)/)[0],value)

解决方法

在 OpenRefine 中,最简单的方法是使用构面(如“文本过滤器”)来选择包含 (…) 的行。

然后,使用列命令«编辑单元格 -> 替换»。

查找:(.*)\s*\((.*)\) 替换:$1,$2

Dialog for the Replace command.

问候, 安托万