Вы не можете напрямую создать более одного нового столбца с помощью OpenRefine. Однако вы можете упростить ваш сценарий, используя вместо Gthon Grel:
if(value.find(/YOUR REGEX/) > 0, value.find(/YOUR REGEX/).join(|), "No match")
Метод .find()
в Grel (версия OpenRefine> = 3) очень похож на re.findall()
в Python.
Сохраните результат в новом столбце, затем используйте «Редактировать столбец / разделить на несколько столбцов» с каналом (|) в качестве разделителя, чтобы создать столько новых столбцов, сколько у вас есть групп.
Эквивалент Jython, вероятно, выглядит примерно так:
value = "1995 is a year"
Код
import re
regex = r"(\d+).+?(year)"
match = re.findall(regex, value)
if match:
return "|".join(value[0])
else:
return "No Match"
Результат
1995|year