所以我在OpenRefine中做我的第一个项目,我还没有完全理解GREL的东西,以及如何用它转换我的project。
问题是:我有一个列,我只想删除与特定模式匹配的单元格的内容,并且只有当它们不包含其他内容时才删除。
我的专栏看起来像这样:(图像不允许)
LF 2(1927)40
LF 2(1927)42
"Wirtin" LF 2(1927)44
Lottchen LF 3(1928)3
LF 3(1928)7
"Mit schönem Gruß Arthur Powalla aus Hamburg" LF 3(1928)9
LF 3(1928)14 DF 3(1927)1
我想删除所有只包含字符串模式(如LF 2(1927)42
)的单元格的内容。如果它们包含更多的内容,我希望保留所有内容,而不删除该模式。
在变形…我尝试使用以下GREL命令:if(value==(LF \d\(\d*\)\d+),null,value)
我之前使用了包含在其中的正则表达式进行不同的操作,它完成了它应该做的事情。所以我认为错误出在别处。它发送的错误是这样的:Parsing error at offset 14: Missing )
非常感谢你帮我这件事!!
1条答案
按热度按时间xmakbtuz1#
GREL不支持对赋值或比较表达式进行模式匹配的功能。
你要找的表达方式是
请注意,我告诉GREL对单元格(
value
)的内容使用match函数,并尝试应用包含在/
中的正则表达式。然后,我们通过isNull区分
null
(模式不适用)和空数组(模式适用,但模式没有定义子模式)。或者,您也可以使用带有正则表达式的文本过滤器,然后对过滤后的数据执行转换。当你不熟悉GREL时,这会更直观。