使用正则表达式

时间:2016-11-24 20:48:48

标签: regex openrefine

我需要使用open refine来清理大量数据。 我对正则表达式很不好,我想不出一种方法来得到我想要的东西, 这是在引号之间提取文本字符串,其中包含许多特殊字符,如“'/ \#@ - 在每个单元格中,它具有相同的格式

  

标题':我想要提取',u'likes':

任何帮助都将受到高度赞赏!

2 个答案:

答案 0 :(得分:0)

如果要提取包含大量特殊字符的文本字符串,并且位于引号' '之间,您可以通常这样做:

\'[\S\s]*?\'

Demo

在您的情况下,如果您只想从中提取内侧引用:caption': u'text I want to extract', u'likes':,请尝试使用此正则表达式:

(?<=u\')[\V]*?(?=\'\,)

Demo

答案 1 :(得分:0)

我们设计了OpenRefine,其中包含一些智能功能,可以处理您的等常见情况,而无需使用正则表达式。

另外两种在OpenRefine中处理此问题的好方法。

  1. 使用下拉菜单:
    • 编辑专栏
    • 分成几列
      • by separator Separator'

  2. 使用smartSplit (字符串s,可选字符串sep)

    返回:数组

    返回通过使用分隔符sep拆分s获得的字符串数组。正确处理报价。如果没有给出“sep”,则猜测制表符或逗号分隔符。

    value.smartSplit("'")[2]