我是OpenRefine的新手。
我想将下面两个例子中的字符串拆分成不同的列。
例1:/ articles / the_year_of_cooking_6_ways_to_make_2014_meals_your_best?affref = whatever
例2:/?Article = younger_looking_everything_5_tips_for_aging_well& affref = anotherwhatever
第一个例子应该分为三列:
/物品/ 烹饪的一年有6种方法让2014年的食物最好吗? affref =任何
第二个例子应分为三列:
/?文章= 年轻人看起来很好的老化5个技巧 &安培; affref = anotherwhatever
编辑列>拆分似乎不允许使用不同的分隔符(“/”,“=”,“&”)
编辑列>基于此列添加列似乎是正确的,但我对正则表达式或GREL不太了解,以实现它。
非常感谢任何帮助。
感谢。
答案 0 :(得分:0)
您可以使用两个单独的Split操作与不同的单独操作,或者您可以充分了解正则表达式,以便在一个中完成。字符类是使用方括号定义的,使用[/?]或[/&?]的正则表达式分隔符可以做到这一点。我没有对此进行测试,因此您可能需要转义任何被认为特殊的字符。
答案 1 :(得分:0)
编辑单元格>根据此列添加列
substring(value, lastIndexOf(value, "/")+1, lastIndexOf(value, "?")+1)
上面的GREL在“ /”和“?”之间得到一个子字符串。字符。它通过使用lastIndexOf()
函数获取分隔字符的数字索引来工作。然后,然后将这些索引与substring()
一起使用,以获取字符串的中间部分。并且+1
被添加到每个索引以微调哪些字符最终出现在子字符串中。
这将创建与示例#1中的中间列匹配的OpenRefine列。但它不会碰到示例2,该示例在“ /”和“?”之间没有字符。您所请求的中间列(例如#2)可以通过以下方式创建:
substring(value, lastIndexOf(value, "Article=")+8, lastIndexOf(value, "&"))
可以在the substring function上创建具有类似变体的其他列。完成后,您的数据将散布在各个列中,然后您可以根据需要add back together。
答案 2 :(得分:0)
我已经构建了一个 Excel 工作表来处理多达 15 个分隔符,如果您想查看我使用的原则,它们会在工作表上进行说明
https://exeterhealth.libguides.com/ld.php?content_id=33701878
想知道是否可以在 openrefine 中轻松实现这种级别的功能...
大卫纽曼埃克塞特健康图书馆英国德文郡