使用 Python 在 Openrefine 中应用正则表达式

问题描述

我试图通过查找包含特定字符串的列中的所有行(即“value.findall()”、“WASHER”、“{”)来使用 OpenRefine 3.4 中的 FLAT 函数{1}}" 和 "10MM"` 以任意给定的随机顺序返回,并将其返回到新列中。这是我的代码片段。

SS

这是屏幕的样子。

screenshot of my what my the data in the column looks like

解决方法

您需要将以下代码放入框中:

import re
regex=r'^(?=.*\bWASHER\b)(?=.*\bFLAT\b)(?=.*\b10MM\b)(?=.*\bSS\b).*'
return re.findall(regex,value)

这将返回一个完整的字符串,其中包含 WASHERFLAT10MMSS 作为字符串中任意位置的完整单词。

参见regex demo

如果它们立即连续发生,您可以使用

regex=r'.*?\bWASHER\s+FLAT\s+10MM\s+SS\b.*'

this regex demo