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

2024-05-15 21:36:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用OpenRefine3.4中的value.findall()函数,方法是查找列中包含特定字符串的所有行,即“WASHER”、“FLAT”、“10MM”和“SS”`以给定的任意顺序,并将其返回到新列中。下面是我的代码片段

import re
regex=r"(\WASHER)(\"FLAT")(\"10MM")(\"SS")"
return re.findall(regex, value)

下面是我的屏幕

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


Tags: 方法函数字符串代码importrereturn屏幕
1条回答
网友
1楼 · 发布于 2024-05-15 21:36:28

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

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

相关问题 更多 >