2016-11-24 56 views
0

我有一大組數據,我需要使用開放式精化進行清理。 我用正則表達式很糟糕,我不能想辦法來得到我想要的東西, 這是提取引號之間的文本字符串包含了很多特殊字符,如「'/ \#@ - 在每個單元中,它具有相同的格式用正則表達式提取文本字符串

標題 ':u'text我想提取',u'likes'!

任何幫助將高度讚賞

+0

什麼是您預期的結果? –

+0

只是想有輸出: '文字我想extract' 易卜拉欣解決了這個問題,感謝您抽出時間來回答我! – Gauthier

回答

0

如果你想提取包含大量特殊字符的文本字符串,位於引號之間' ',你可以做到這一點,一般是這樣的:

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

Demo

在你的情況,如果你想從這個只提取內側報價:caption': u'text I want to extract', u'likes':,試試這個正則表達式:

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

Demo

+0

非常感謝,它奇妙地工作! – Gauthier

+0

@ Gauthier不客氣。 – Ibrahim

0

我們設計OpenRefine與一些智能功能來處理常見情況如你的而不使用正則表達式。

另外兩種很酷的方法可以在OpenRefine中處理這個問題。

  1. 使用下拉菜單:
    • 編輯列
    • 分割成若干列
      • 通過分離器分離

  2. 使用smartSplit (字符串s,可選字符串SEP)

    回報:陣列

    返回由分裂s的分離器SEP獲得字符串的數組。正確處理引號。猜測選項卡或逗號分隔符如果沒有給出「sep」。

    value.smartSplit("'")[2]