0

我正在尝试使用 GREL 添加基于 OpenRefine 中的列的列。

我需要在科学名称的第二个空格之后提取每个文本。

这是原始单元格数据的两个示例--->我要提取的内容:

Amandinea punctata (Hoffm.) Coppins & Scheid。---> (Hoffm.) Coppins & Scheid。Agonimia tristicula (Nyl.) Zahlbr. ---> (Nyl.) Zahlbr。

4

2 回答 2

0

一个解决方案:在看起来不错的分隔符上进行分区:“(”,取右边的部分并在开头添加一个缺失的“(”。

"("+value.partition(" (")[2]
于 2021-08-31T14:58:09.043 回答
0

以下是在给定数据上实现所需结果的三种方法,从易于理解到更高级。

使用列拆分

您可以通过选择空格作为分隔符将列拆分为三列,并在相应对话框中将新列的数量限制为 3。然后您可以删除前两列并获得您想要的结果。

使用数组函数

您可以通过 GREL 和数组使用相同的技术...在空白处拆分,丢弃前两个条目并将其余条目加入空白处。

value.split(" ").slice(2).join(" ")

使用正则表达式

您还可以将match 函数与正则表达式一起使用。

value.match(/\S+\s\S+\s(.+)/)[0]
于 2021-08-31T17:07:33.093 回答