Return 使用 Python / Jython RegEx 在 OpenRefine 中获得多个结果
Return multiple results in OpenRefine using Python / Jython RegEx
因此,我正在尝试提取显示为 dd.mm.yyyy.
的一些日期
有些单元格只包含一个日期,有些单元格包含多个日期(例如从 dd.mm.yyyy 到 dd.mm.yyyy),以及更多我不关心的文本。
我需要提取两个日期以创建两列 - "From" 和 "To",为只发生在一个日期的事件留空。
我试过在 Python / Jython 中使用以下表达式,但它只是 returns 包含多个单元格的第一个日期。
import re
g = re.search("([0-9])([0-9])\.([0-9])([0-9])\.([0-9])([0-9])([0-9])([0-9])", value)
return g.group()
如何返回两个日期?
非常感谢!
您可以使用 .findall()
获取所有匹配项。还可以通过删除每个数字的捕获组并使用 \d
而不是 [0-9]
使您的正则表达式更简单
import re
g = re.findall("\d{2}\.\d{2}\.\d{4}", value)
return g
因此,我正在尝试提取显示为 dd.mm.yyyy.
的一些日期有些单元格只包含一个日期,有些单元格包含多个日期(例如从 dd.mm.yyyy 到 dd.mm.yyyy),以及更多我不关心的文本。
我需要提取两个日期以创建两列 - "From" 和 "To",为只发生在一个日期的事件留空。
我试过在 Python / Jython 中使用以下表达式,但它只是 returns 包含多个单元格的第一个日期。
import re
g = re.search("([0-9])([0-9])\.([0-9])([0-9])\.([0-9])([0-9])([0-9])([0-9])", value)
return g.group()
如何返回两个日期?
非常感谢!
您可以使用 .findall()
获取所有匹配项。还可以通过删除每个数字的捕获组并使用 \d
而不是 [0-9]
import re
g = re.findall("\d{2}\.\d{2}\.\d{4}", value)
return g